【发布时间】:2014-07-14 06:34:56
【问题描述】:
我的代码包含以下行:
int counts[config.max_c];
我很惊讶地发现它使用默认的gcc 编译没有任何问题。根据man gcc,c 代码的默认标准是gnu89。这个标准是否支持这种类型的数组初始化,如果支持,我在哪里可以找到参考?
【问题讨论】:
-
从手册页引用:“gnu89 - ISO C90 的 GNU 方言(包括一些 C99 功能)。这是 C 代码的默认设置。”对于一些 c99 功能,包括 vlas(如 vlas 的man pages 中所述。遗憾的是,您必须查找您感兴趣的每个功能,看看它是否受支持。
-
只是添加到 +Carson 的评论中,为了澄清问题,
gnu89(我们是gnu90的别名)不被视为 标准,只是一个'方言',这就是为什么答案是这样的
标签: c gcc c99 c89 variable-length-array