这个问题正在寻找一个标准的报价,明确解释为什么这种行为是错误的。
下面的代码包括<stdio.h>
里面main
,
int main()
{
#include <stdio.h>
printf("hello , world \n");
return 0;
}
在gcc -Wall in.c -o in.out
它成功编译和打印hello , world
。
但是clang in.c -o in.out
它给了我这个错误:
/usr/include/stdio.h:353:12: error: implicit declaration of 'fprintf' requires
inclusion of the header <stdio.h>
extern int fprintf (FILE *__restrict __stream,
^
1 error generated.
我怀疑这是什么行为?这是未定义的行为还是什么?
我也找不到与之相关的文档。
编辑:问题是我在某个类似的地方发现了这段代码,但我不能准确地发布该代码,所以我发布了这种演示代码。我知道在stdio.h
主目录之外放置。