此問題正在尋找一個標準報價明確解釋爲什麼這種行爲是錯誤的。這是什麼類型的行爲?
下面的代碼包括<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
以外的主。
你知道這樣的事情現在很容易檢查 - http://ideone.com/z2m2yJ。當然,它不會在GCC上編譯。 – SChepurin
@它是'gcc 4.3'在IDEONE上,但在我的筆記本電腦上'gcc 4.5'這是編譯 – Omkant
這是來自gcc 4.5.1 - http://ideone.com/io4JNG。 – SChepurin