在使用-std=c17 -pedantic-errors -Wall -Wextra编译gcc (或clang)的最新版本时static int x =对于具有静态或线程存储持续时间的对象,初始化程序中的所有表达式都应该是常量表达式或字符串文本。然后定义常量表达式,在本例中为整数常量表达式(6.6):
整数常量表达式应具有整数类型
我理解内置数组的大小必须是一个常量表达式:constexpr int n = 5;我不明白为什么要汇编下列文件:const int此外,如果编译器足够聪明,可以看到n是用5初始化的,那么为什么下面的编译器不编译:int n = 5;
double arr[n]; // n is initialized with的答案使用<