なんでCの勉強がこんなに大変か説明しよう。 Cを作ったカーニハンとリッチーは、開発者としては優秀だったが、インストラクターとしては最低の部類だった。 彼らはいわゆるヲタで、コードは書けるがニンゲンにわかりやすく説明する能力は装備されていなかった。 Programmming language C を書いたが、これにはCのすべてはのっていなかった。 よくわからないところは、Unix のソースを読んでくれ、という雰囲気があった。 このため、さまざまなCの解釈が生まれ、ANSIで統一されるまで混乱が続いた。
開発者自身の手ではじめからわかりやすく統一された解説がなかったのが、混乱の理由だ。
83 名前: ビル・ジョブス 投稿日: 01/11/18 14:36
>>82 Cの勉強って大変?ならやめとけよ。おれは楽しいぜ。 とりあえず、言語の説明(言語仕様)というところは、 Programmming language C で十分じゃないか? この本は、Cの使い方の説明書じゃないぞ。
> 6.5.8 Relational operators > 6 Each of the operators < (less than), > (greater than), <= (less than or equal to), and >= > (greater than or equal to) shall yield 1 if the specified relation is true and 0 if it is false.89) > The result has type int. > > 6.5.9 Equality operators > 3 The == (equal to) and != (not equal to) operators are analogous to the relational > operators except for their lower precedence. Each of the operators yields 1 if the > specified relation is true and 0 if it is false. The result has type int. (後略)
超厨房です。スマソ Cって変数をスコープの最初にまとめて宣言するじゃないですか。 あれって変数を使用する個所と宣言が離れてしまって気持ち悪いんで たとえばifとかforなどでは、 for(;;) { int a; /* a, b ともfor内だけのローカル変数 */ int b; --- a, b を使用 --- }
ってな具合にしたいんですが、これって int a; int b; ... for(;;) { --- a, b を使用 --- } って書いた場合よりパフォーマンスの面で問題あるんでしょうか。 それともコンパイラの最適化とかいうもののおかげで問題ないのでしょうか。 (過去ログもあんまり読んでません。再度スマソ)