我们在哪里可以使用匿名结构和联合体?
struct
{
int bar;
}; // anonymous struct
union
{
int bar;
}; // anonymous union
我认为我们可以按照以下标准来做:
联盟 - C ++ 98,C ++ 03,C ++ 11,C11
结构 - C11
我是对还是
答案 0 :(得分:5)
关于C的陈述是正确的:匿名结构和联合的标准化是相当新的(C11)cfr. GCC man。
请注意,您首选的编译器可以将这些功能作为当前支持标准的扩展(例如GNU C99扩展)。
然后,检查旧规范,似乎自1998以来C ++支持匿名联合。
众所周知,C ++中禁止使用匿名结构,但我没有找到任何修改。从Visual studio 2012开始,确认C ++不支持此功能。