我特别寻找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