在C中使用零长度数组有什么好处?
例如:
struct email {
time_t send_date;
int flags;
int length;
char body[];
}list[0];
答案 0 :(得分: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
是一个灵活的数组成员。
答案 1 :(得分:-1)