检查支持的支持

  • 本文关键字:支持 c arrays c99
  • 更新时间 :
  • 英文 :


是否有标准宏来检查C代码中变量长度数组的支持?它足以在所有使用的编译器中检查C99(__STDC_VERSION__ >= 199901L(?

来自C11规范§6.10.8.3

以下宏名称有条件地定义 实施:
[...]

__STDC_NO_VLA__整数常数1,旨在表明该实现不支持可变长度或可变的长度阵列 修改类型。

因此,如果__STDC_VERSION__ > 201000L您需要检查__STDC_NO_VLA__

否则,如果__STDC_VERSION__ >= 199901L VLA应该有效,但是如果编译器不合格,您将遇到编译时间错误。

最新更新