在C99中,您可以这样声明结构的灵活数组成员:
struct blah
{
int foo[];
};
但是,当某人在工作时尝试使用C ++中的clang编译一些代码时,该语法不起作用。(它已经与MSVC一起使用。)我们必须将其转换为:
struct blah
{
int foo[0];
};
纵观C ++标准,我发现根本没有引用弹性成员数组。我一直认为这[0]是一个无效的声明,但是显然对于灵活的成员数组而言,它是有效的。弹性成员数组在C ++中实际上有效吗?如果是这样,是正确的声明[]还是[0]?
犯罪嫌疑人X
跃然一笑
慕码人8056858
相关分类