6.5.2.2 関数呼び出し
暗黙の宣言は、1990 C 規格の場合とは異なり、1999 C 規格では許可されなくなりました。以前のバージョンの C コンパイラでは、-v (冗長形式) を指定した場合にだけ、暗黙の定義についての警告メッセージが生成されていました。暗黙の定義についてのこれらのメッセージおよび新しい警告は、識別子が暗黙に int または関数として宣言されている場合は常に生成されます。
多数の警告メッセージが生成されることがあるため、この変更はたいていの場合はすぐにわかります。よくある原因としては、たとえば、printf では <stdio.h> をインクルードする必要があるように、使用する関数を宣言する適切なシステムヘッダーファイルをインクルードしていないことが考えられます。1990 C 規格に従って暗黙の宣言を許可するには、-xc99=none を指定します。
C コンパイラは、暗黙の関数宣言に対して警告を生成するようになりました。
example% cat test.c void main() { printf("Hello, world!\n"); } example% cc test.c "test.c", line 3: warning: implicit function declaration: printf example% |