“int size=10;”会产生一个常量表达式吗?

“int size=10;”会产生一个常量表达式吗?

以下代码在GCC 4.8和Clang 3.2下编译:

int main(){
  int size = 10;
  int arr[size];}

8.3.4/1的C+标准指出,数组的大小必须是一个积分常量表达式,其中size似乎不是。这是两个编译器中的一个bug,还是我遗漏了什么?

最新的VC+CTP拒绝使用以下有趣信息的代码:

error C2466: cannot allocate an array of constant size 0

有趣的是它似乎认为size是零。但至少它拒绝了代码。GCC和Clang不应该这样做吗?


弑天下
浏览 531回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP