次の 2 つのファイルがあります。
// first.c
int main(void) {
putint(3);
}
と
// second.c
#include <stdio.h>
void putint(int n) {
printf("%d",n);
getchar();
}
Win XP で gcc 4.6.1 を実行すると、次のようになります。
gcc first.c second.c -o program.exe
問題なく、stdout に 3 が書き込まれます。first.cputint
で宣言する必要はありません。これはどのように可能ですか?これは標準的な動作ですか?
これを MSVC 2008 Express でテストしたところ、期待どおりの宣言でのみ実行されます。
// first.c
void putint(int);
int main(void) {
putint(3);
}
解決済み、ヒントのおかげで、これらのオプションは警告を表示するのに役立ちました:
- -暗黙の了解
- -std=c99 (MinGW 4.6 はデフォルトでgnu90を引き続き使用します)