アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。

ANSI Cを学ばなければならなくなったのですが
ANSI Cが標準規格であるということ以外、
どういうものなのかということがわかりません。
プログラムの書き方が異なるのでしょうか。
それともエディター・コンパイラーによって異なるのでしょうか。

もう一点。
ANSICを学ぶ上で解説付の問題集の購入を検討しているのですが
オススメの物があれば紹介して頂ければ幸いです。

初歩的な質問で申し訳ないですが、宜しくお願いします。

A 回答 (3件)

>ANSI Cが標準規格であるということ以外、


>どういうものなのかということがわかりません。
>プログラムの書き方が異なるのでしょうか。
>それともエディター・コンパイラーによって異なるのでしょうか。

「標準規格」とは「こう書いたら、どう動くか?」を規格化した物です。

言い替えれば「文法的には問題がないが、実際に書いた場合にどう動くのかが曖昧になってしまう部分を、明確に決めた物」です。

例えば、
char c;と書いたら、このcは符号付きか、符号無しか?
char c;、int i;と定義し、c = -1;、i = c;と書いたら、iは-1になるのか、それとも255になるのか?
定義しただけで代入も参照もしてない変数があったら、コンパイル時、無視するか、警告するか、エラーで止まるか、どうするか?
などです。

これらは、規格化される前は「動作が明確に決まってないから、このCコンパイラでコンパイルした時と、こっちのCコンパイラでコンパイルした時で、プログラムの実行結果が違ってしまう」と言う事が起きてしまいました。

これでは「違うCコンパイラに移植したら動かなくなってしまう。場合によっては、動かないどころか、コンパイルも出来ない」と言う問題が起きてしまいます。

「それでは困る。規格を統一しよう」って事で始まったのが「ANSI Cの規格化」です。

言うなれば「ANSI Cを覚える」とは「曖昧な書き方をした時にどういう動きをするのか覚える」「規格上で動作が未定義とされている書き方をしないよう覚える」「コンパイル環境に依存しない書き方をしないよう覚える(特定のコンパイラでしか通じない方言を書かないよう覚える)」と言う事です。
    • good
    • 0

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-25 …
    • good
    • 0

いわゆるANSI Cは、日本工業規格(JIS)のX3010に相当します。


参考URLのサイトで閲覧できます。
製本されたものを購入することもできます。

日本語訳が微妙なところもありますが、一度通して見ておいて、持っておいて損は無いものと思います。

参考URL:http://www.jisc.go.jp/
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!