Top >
Programming Language >
C/C++ > C/C++で「incompatible implicit declaration of built-in function」という警告の対処
C/C++で「incompatible implicit declaration of built-in function」という警告の対処
C/C++で「incompatible implicit declaration of built-in function」という警告の対処について紹介します。
1.問題点
次のプログラム(sample.c)を書きました。
int main(void) {
int c = 100;
printf("%d\n", c);
return 0;
}
このプログラムをコンパイルしたところ、次の警告が表示されました。
[foo@hoge ~]$ gcc -o sample.c
sample.c: In function 'main':
sample.c:3: 警告: incompatible implicit declaration of built-in function 'printf'
警告は「ビルトイン関数strcpyの互換性のない暗黙の宣言」という意味になります。
ネットで調べたとところ、「事前に宣言されていない関数を使用すると、(コンパイラで)関数の暗黙の宣言が行われる。ただし暗黙の宣言が組み込みの関数と互換性がない場合、警告が表示される」ということらしいです。
2.原因
原因は、printf()を使っていてstdio.hをインクルードしていないためです。
その他、strcpy()を使っていてstring.hをインクルードしていない場合など、同様の警告が発生します。
3.対処
下記の1行を追加すれば解消します。
#include <stdio.h>
4.参考サイト
参考サイトは下記です。ありがとうございました。
- DCL31-C. 識別子は宣言してから使用する
- warning: incompatible implicit declaration of built-in function 'xyz'
- プログラマの教養は manual pages に宿る (その5)
Posted by yujiro このページの先頭に戻る
トラックバックURL
コメントする
greeting