void A(int n);
int main(void) {
A(5);
}
void A(int n){
int a[n];//没报错
}
n是编译期常量吗?
为什么不报错?
可变长数组(variable-length array)是C99引入的新语法。C++标准不支持。不过gcc, clang等编译器支持C99,因此不报错。
详情请参考
https://en.cppreference.com/w/c/language/array#Variable-length_arrays
没报错不很正常吗
c++允许用变量定义数组长度啊
c语言才要求数组长度必须是常量
n不是编译期常量,没报错很奇怪,有可能你这个不是正规的C++编译器,