在C语言中如下所示的数组声明的用例是什么(它是有效的,不要说它是错误的)

时间:2017-03-30 11:57:27

标签: c data-structures

在我的公司,当我在寻找代码部分时, 我想知道什么时候我看到类似这样的数组变量声明

int arr[0]; (使用c语言)

有没有人可以帮我说明这个声明的意义? 这个声明如何利用codepart的实时性?

1 个答案:

答案 0 :(得分:2)

如果既不是标准C也不是标准C ++,这是一个错误。

这是将可变长度数组作为struct成员插入的旧(即C99之前)方式,虽然某些编译器(例如GCC)支持它作为扩展,但它从未成为标准C.它必须是struct的最后一个成员。

发布C99,现在标准的方法是使用空括号。

对于C ++,你运气不好 - 变长数组不是标准的C ++。但您可以改为使用std::vector