std = gnu89下是否支持可变长度数组?

Fla*_*ash 2 c gcc c99 c89 variable-length-array

我的代码包含以下行:

int counts[config.max_c];
Run Code Online (Sandbox Code Playgroud)

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

hac*_*cks 5

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

不.它不支持可变长度数组.

ISO C99允许使用可变长度自动数组,并作为扩展GCC.
虽然您在C89中编译代码,但由于GCC扩展,它编译时没有错误.