• ベストアンサー

ANSI Cと学ぶのに適した本

こんにちは。 ANSI Cを学ばなければならなくなったのですが ANSI Cが標準規格であるということ以外、 どういうものなのかということがわかりません。 プログラムの書き方が異なるのでしょうか。 それともエディター・コンパイラーによって異なるのでしょうか。 もう一点。 ANSICを学ぶ上で解説付の問題集の購入を検討しているのですが オススメの物があれば紹介して頂ければ幸いです。 初歩的な質問で申し訳ないですが、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

>ANSI Cが標準規格であるということ以外、 >どういうものなのかということがわかりません。 >プログラムの書き方が異なるのでしょうか。 >それともエディター・コンパイラーによって異なるのでしょうか。 「標準規格」とは「こう書いたら、どう動くか?」を規格化した物です。 言い替えれば「文法的には問題がないが、実際に書いた場合にどう動くのかが曖昧になってしまう部分を、明確に決めた物」です。 例えば、 char c;と書いたら、このcは符号付きか、符号無しか? char c;、int i;と定義し、c = -1;、i = c;と書いたら、iは-1になるのか、それとも255になるのか? 定義しただけで代入も参照もしてない変数があったら、コンパイル時、無視するか、警告するか、エラーで止まるか、どうするか? などです。 これらは、規格化される前は「動作が明確に決まってないから、このCコンパイラでコンパイルした時と、こっちのCコンパイラでコンパイルした時で、プログラムの実行結果が違ってしまう」と言う事が起きてしまいました。 これでは「違うCコンパイラに移植したら動かなくなってしまう。場合によっては、動かないどころか、コンパイルも出来ない」と言う問題が起きてしまいます。 「それでは困る。規格を統一しよう」って事で始まったのが「ANSI Cの規格化」です。 言うなれば「ANSI Cを覚える」とは「曖昧な書き方をした時にどういう動きをするのか覚える」「規格上で動作が未定義とされている書き方をしないよう覚える」「コンパイル環境に依存しない書き方をしないよう覚える(特定のコンパイラでしか通じない方言を書かないよう覚える)」と言う事です。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • isle
  • ベストアンサー率51% (77/150)
回答No.3

いわゆるANSI Cは、日本工業規格(JIS)のX3010に相当します。 参考URLのサイトで閲覧できます。 製本されたものを購入することもできます。 日本語訳が微妙なところもありますが、一度通して見ておいて、持っておいて損は無いものと思います。

参考URL:
http://www.jisc.go.jp/
すると、全ての回答が全文表示されます。
  • maku_x
  • ベストアンサー率44% (164/371)
回答No.2

ANSI C は古典的な K&R C に対する新しい規格の事ですね。いろいろ文法上の相違点があります。下記が参考になるでしょう。 http://docs.sun.com/source/806-4836/compat.html C言語を学ぶ上での定番の書物は「プログラミング言語 C」です。 http://www.amazon.co.jp/o/ASIN/4320026926/249-2581416-2713906?SubscriptionId=1CVA98NEF1G753PFESR2

すると、全ての回答が全文表示されます。

関連するQ&A