2

在 C 中使用零长度数组有什么好处?

例如:

struct email {
    time_t send_date;
    int flags;
    int length;
    char body[];
}list[0];
4

2 回答 2

4

大小数组0在 C 中无效。

char bla[0];  // invalid C code

从标准:

(C99, 6.7.5.2p1) “如果表达式是常量表达式,它的值应大于零。”

因此list声明在您的程序中无效。

具有不完整类型作为结构的最后一个成员的数组是灵活数组成员

struct email {
    time_t send_date;
    int flags;
    int length;
    char body[];
};

body是一个灵活的数组成员。

于 2012-09-13T18:04:44.623 回答
-1

这是你的答案:http ://www.quora.com/C-programming-language/What-is-the-advantage-of-using-zero-length-arrays-in-C

于 2012-09-13T17:58:25.450 回答