我特別尋找C11標準(ISO/IEC 9899:2011)或POSIX頁面中的單詞。我檢查了POSIX manual for fwrite,但它沒有提及未定義的行爲。然而,manual for fclose不說, ,來電後FCLOSE(),不確定的行爲的任何使用流導致的。 但我仍然看不到NULL流是否會導致UB。
如果我初始化這樣的變量: static int i = 2 * 2/0;
然後,編譯器給我一個錯誤。 prog.c: In function 'main':
prog.c:5:23: warning: division by zero [-Wdiv-by-zero]
static int i = 2 * 2/0;
^
prog.c:5:17: error: ini
在一個C++項目中,我使用了包含一些C11頭文件的C庫。它不會與GCC編譯。看到這個簡單的代碼: // main.cc
#include <stdatomic.h>
int main()
{
return 0;
}
運行gcc main.cc -lstdc++,它抱怨:error: ‘_Atomic’ does not name a type。然而,clang main.c
我試圖重載函數與C11 _Generic宏是這樣的: int isPrim_int (int num);
int isPrim_lint (long int num);
int isPrim_llint (long long int num);
#define isPrim(_1, ...) _Generic((_1), \
int: isPrim