7

我们在哪里可以使用匿名结构和联合?

struct
{
    int bar;
}; // anonymous struct

union
{
    int bar;
}; // anonymous union

我认为我们可以按照以下标准做到这一点:

  • 联合 - C++98、C++03、C++11、C11

  • 结构 - C11

我对不对

4

1 回答 1

5

关于 C 的陈述是正确的:匿名结构和联合的标准化是相当新的(C11)cfr。海湾合作委员会人

请注意,您首选的编译器可以启用这些功能作为对当前支持的标准的扩展(例如 GNU C99 扩展)。

然后,检查旧规范,自1998 年以来,C++ 似乎支持匿名联合。

众所周知,C++ 中禁止使用匿名结构,我没有发现任何修改。从Visual Studio 2012 开始,确认 C++ 不支持此功能。

于 2012-09-10T15:53:42.693 回答