2

我的代码包含以下行:

int counts[config.max_c];

我很惊讶地看到它使用gcc没有任何标志的默认编译没有问题。根据man gccc 代码的默认标准是gnu89. 该标准是否支持这种类型的数组初始化,如果支持,我在哪里可以找到参考?

4

2 回答 2

5

该标准是否支持这种类型的数组初始化,如果支持,我在哪里可以找到参考?

不,它不支持可变长度数组。

ISO C99 允许可变长度自动数组,并作为扩展 GCC
尽管您在 C89 中编译代码,但由于 GCC 扩展,它编译时不会出错。

于 2014-05-25T09:45:07.200 回答
1

gcc 使用的默认方言是 C90。

对于 C90,gcc 支持 VLA 作为扩展。

于 2014-05-25T09:46:16.133 回答