可变大小的数组:GCC 扩展
C 标准规定数组的大小在声明时必须是常量整数。然而,这个问题引发了令人惊讶的观察,即使用非常量变量作为数组大小的代码片段在 GCC 中成功编译。
GCC 扩展
GCC 引入标准的扩展,允许使用非常量变量来表示数组大小。正如《C 编程语言》中引用的部分所述,标准不支持这一点。
惊喜
问题中的代码片段声明了一个数组 v1 和一个采用整数参数(表示数组大小)的函数 f。当给 f 中的 v2 赋值时,GCC 允许这种非标准行为。
含义
虽然 GCC 允许这种扩展,但需要注意的是,不是 C 标准的一部分。使用它可能会导致其他不支持扩展的编译器或系统出现可移植性问题。
强制执行和警告
编译器可以通过 -pedantic 等选项强制执行标准。使用此选项,GCC 将在遇到非标准结构(例如可变大小数组)时发出警告。同样,指定 -std=c 98 会使此构造出错。
结论
GCC 的扩展允许声明可变大小的数组,但至关重要的是请注意,这不是 C 标准的一部分。为了可移植性和遵守标准,建议使用常量数组大小。
以上是GCC 编译器可以在 C 中使用可变大小的数组吗?的详细内容。更多信息请关注PHP中文网其他相关文章!