在我的公司,当我在寻找代码部分时, 我想知道什么时候我看到类似这样的数组变量声明
int arr[0]
; (使用c语言)
有没有人可以帮我说明这个声明的意义? 这个声明如何利用codepart的实时性?
答案 0 :(得分:2)
如果既不是标准C也不是标准C ++,这是一个错误。
这是将可变长度数组作为struct
成员插入的旧(即C99之前)方式,虽然某些编译器(例如GCC)支持它作为扩展,但它从未成为标准C.它必须是struct
的最后一个成员。
发布C99,现在标准的方法是使用空括号。
对于C ++,你运气不好 - 变长数组不是标准的C ++。但您可以改为使用std::vector
。