次: Source Language, 前: Using Extensions, 上: Design Advice
決して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で書けばいい。