Last Update 2021/09/07
-Wimplicit
-Wimplicit-intと-Wimplicit-function-declarationを指定した場合と同じ
テスト概要
言語標準にC90を指定し、-Wimplicitを指定した場合の出力例
実行環境
GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1
GNU C Library 2.28
GNU Binutils 2.31.1
コード例・出力内容中の表記
・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
使用ファイル
sample.c
#include <stdio.h>
int sampFunc2(void)
{
/* 宣言される前の関数を使用 */
return func1();
}
int func1(void)
{
printf("func1\n");
return 1;
}
int main(void)
{
/* 型指定の無い変数宣言 */
static i;
i = 0;
printf("%d\n", i);
sampFunc2();
return 0;
}
言語標準にC90を指定した場合の出力
$ gcc -std=c90 sample.c 警告無し
$ 言語標準にC90の場合、-Wimplicit-int、-Wimplicit-function-declarationは無効
言語標準にC90を指定し、-Wimplicitを指定した場合の出力
$ gcc -std=c90 -Wimplicit sample.c
sample.c: In function ‘sampFunc2’:
sample.c:6:9: warning: implicit declaration of function ‘func1’ [-Wimplicit-function-declaration]
return func1();
^~~~~
sample.c: In function ‘main’:
sample.c:19:9: warning: type defaults to ‘int’ in declaration of ‘i’ [-Wimplicit-int]
static i;
^
$ -Wimplicit-int、-Wimplicit-function-declaration共に有効