以下の例をコンパイルしようとすると、警告が表示されました。
>gcc -o file file.c
file.c: In function ‘main’:
file.c:12: warning: incompatible implicit declaration of built-in function ‘exit’
いくつかの検索の後、 example に statement が欠落していることに気付きました#include <stdlib.h>
。関数はどこでexit()
宣言されましたか?ライブラリstdio.h
はそれを宣言していません。私のコードもそうではありません。コンパイラでサポートされている場合、なぜ警告が表示されるのですか? また、なぜ で再定義されるのstdlib.h
ですか?
例:
#include <stdio.h>
int main()
{
char *fn = "./test.txt";
FILE *fp;
if((fp = fopen(fn, "w"))==NULL)
{
printf("Cannot open file '%s' for writing.\n", fn);
exit(1);
}
fprintf(fp, "Hello, world!\n");
if(fclose(fp)==0)
printf("File '%s' closed successfully.\n", fn);
else
printf("Error closing file '%s'.\n", fn);
return 0;
}