尽管人们普遍认为 C 中禁止使用可变长度数组,但所提供的代码却另有说明。这怎么可能?
C 标准不要求编译器支持可变长度数组 (VLA)。但是,某些编译器(例如 GCC 4.7 及更高版本)提供 VLA 支持作为扩展。有问题的代码利用了此扩展,这就是它成功编译和执行的原因。
值得注意的是,VLA 最初计划包含在 C 14 中,但最终被排除在外。它们也没有进入 C 17。因此,VLA 支持仍然是特定于某些编译器的扩展,而不是标准的 C 功能。
以上是C 真的可以处理变长数组吗?的详细内容。更多信息请关注PHP中文网其他相关文章!