Next: , Previous: Using Extensions, Up: Design Advice


3.3 ansi Cとansi以前のC

決してansi Cの “trigraph” 機能1を使っては ならない。

ansi Cは、今ではもうansi Cの機能を使う(それゆえnon-ansi コンパイラでは動かない)新しいプログラムを書いていいぐらい広まっている。 そして、もしプログラムがすでにansi Cで書かれているなら、それを non-ansiコンパイラをサポートするよう変換する必要はない。

しかしながら、ほとんどのプログラムではnon-ansiコンパイラをサポー トするのは容易だから、プログラムを書くときにはそうするよう心掛けてもよ いだろう。ansiプロトタイプ形式での関数定義、

     int
     foo (int x, int y)
     ...

を書く代わりに、このようなansi以前の形式で定義を書きなさい。

     int
     foo (x, y)
          int x, y;
     ...

そして、引数のプロトタイプを特定するのに、別に宣言しなさい。

     int foo (int, int);

いずれにせよ、その関数を呼ぶ全てのファイルでansi Cプロトタイプの恩恵 を得るためには、あるヘッダファイル内でそのような宣言を必要とする。 そして、それを一度書いてしまえば、ansi以前の形式で関数定義を書く ことによって失うものは何もない。

もしあなたがnon-ansi Cを知らないなら、それを勉強する必要はない。 ansi Cで書けばいい。


Footnotes

[1] 訳注: 何それ?