0からの、超初心者C言語相談室
何にも知らない0からの出発、超初心者のためのC言語相談室 C++は、こちら。 0からの、超初心者C++相談室 https://mevius.5ch.net/test/read.cgi/tech/1542002113/ 8ビット=1バイト 1ワード=2バイト=16ビット 32ビットCPUなら、通常int は32ビットで2ワード。 CPUがBEかLEか判定するのに使うマクロを #defineで描くとどんなのがありますか >>66 完全に仕様の範囲内かつ人が一切のヒントを与えずに結果が定数式になる形で自動判定するのはたぶん無理だと思う。 #define LE ( (1&0x00000001)!=0)?true:false) #define BE ( (1&0x01000000)!=0)?true:false) >>66 そんなこと考えるより環境のエンディアンに依存しないコードの書き方を学んだほうが良い。 gcc拡張なら #define LE ({ int a = 1; ((const char *)&a)[0]; }) うごくかどうかはしらん !!は静的解析やコンパイラの警告黙らせる時に使える場合もあるよ char a[3]とした場合 aとa[0]は同じ←分かる struct A a[3]とした場合 aとa[0]は違うんか? >>79 aが配列でa[0]はその先頭要素。これらは同じじゃないよ。 この関係はchar a[3]でもstruct A a[3]でも同じだけど。 「*a と a[0] は同じ」あるいは「a と &a[0] は同じ」と言いたかったのかな? a の型はあくまで配列型、つまりこの場合は char[3] という型を持つ。 ただし配列が式中に現れた場合には配列の先頭要素を指すポインタに型変換するという規則によって a と書いたら型 char* の値として解釈される。 先頭要素を指していることになるので a==&a[0] が満たされる。 で、この a[0] という表記もクセモノで、定義上はポインタ演算の構文糖であるという扱いになっている。 a[0] とは *(a+0) のこと。 &a[0] は &*(a+0) と同じということになるんだが、 演算子 & のオペランドが * の適用結果であるときはどちらの適用も無かったことになるというルールがあるので &*(a+0) から &* は消去されて a+0 が残り、 0 を足しても結果は変わらないからこれも消去すると a が残る。 故に &a[0] == a VisualStudioでWin32APIの入門したいんですが どのプロジェクトテンプレートを使えば良いのでしょうか? if elseから学びたいのですが、余計な習っていない文がついたサイトばかり出てきます。 どこを見ればいいのでしょうか 今、リファレンスなんてまともなの売ってない 頼んでもいない文が山盛りついていて、一からやりたい奴は苦労している とほほのhtmlみたいなのは売ってないんだよ つまりリファレンス足り得てない本ばっか いま、プログラムを始めるのは独学では不可能と言ってもいい 分かりづらい言い方しなければ、今はif elseから始める本は売ってない 紙のリファレンスを読むという発想で生き残れるとは思えない。そこはもうデジタルファイルかウェブだよ。 君等の政府を見てみよ。教科書すらデジタル化できない。日本語入力の標準化すらままならない。紙ベース、電話ベースの考えなんかデジタル化で吹っ飛ぶ時代なんだ。 >>95 これをどう初心者が読むんだ???読めないよ 基本的な構文はこうします、ああします、がなにもない 簡素な実例を使って一個づつ説明しないんじゃ、初心者は誰も読めん たとえば、C言語のprintf関数を見たいのであればC++のstd::printfを参照しないといけない。 elseをさもなくば、とか訳すのな、それは合ってる しかし n>10とかifに入ってたのなら初心者には、さもなくばではなく 10より小さければ、という意味になります。と書かんといかん。 なんだかねえ、わざとやってんのか 全てを伝えづともそれくらい書かないとダメだろと言いたい >>98 そんなことはない。 C 由来の関数は C++ の規格では C の規格を参照していて、詳細は C の規格を見ないと書いてない。 C と C++ は付かず離れず平行して存続すると D&E でも言及されている。 だいたい C のほとんどの関数はそのまま使うには C++ では行儀が悪いことが多いだろ。 互換性の都合で仕方なく入ってるだけで、 C++ に取り込みたくなんてないと思う。 入門書というのは必ずしも簡単ではないということは知っておいて欲しい。 その分野でまず必要な知識を書いてあるのが入門書というもので、専門書の一種には違いないわけで。 ハードルを下げようと思えばいくらでも下げられるし、 実際に絵本に毛の生えたような説明の仕方をしているものもあるのだけれど、 きちんとした知識にするにはそれなりに難解な部分だって最終的には避けられない。 入門書なのに難しすぎる! と思うこともあるかもしれないけど、実際にそれは入門に必要なんだってば。 そんな難解な教え方している専門学校ですらどこにもない アスキーとかナツメとか技術評論社あたりを当たると入門書が見つかると思うぜ。 害虫がまた初心者向けに少しでもなるようなページを検索結果から消しているな >>38 秋月のPIC用c使ってるけどこれ規格準拠する気更々ないよな、cっぽいナニカ まあアマチュア向けで気にすることも無いと思うけど するとPCスマホ組み込みサポート網羅すべく頑張ってるc規格が可哀想に思えてくる… スタック数段のマイナーマイコンcだと関数スコープから呼べない標準関数があったりしたな 何段消費するか明示して欲しい まさかテストケースをグローバルで書いてるわけないよな 徹底的に呼び出し避けたマクロライブラリも挙動不審になりがちだしあきらめよう >>66 #defineでは書けなかった でもif文で処理を分ければ最適化で通らない処理とif文の処理は削除される int a=1; if((char)a==0) { ; } else { ; } こんな感じ 間違えた int a=1; if(*((char *)&a)==0) { ; } else { ; } こんな感じ read.cgi ver 07.4.7 2024/03/31 Walang Kapalit ★ | Donguri System Team 5ちゃんねる