哪些标准允许C和C++中的匿名结构和联合?

Fro*_*art 7 c c++ struct anonymous unions

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

struct
{
    int bar;
}; // anonymous struct

union
{
    int bar;
}; // anonymous union
Run Code Online (Sandbox Code Playgroud)

我认为我们可以按照以下标准来做:

  • 工会 - C++ 98,C++ 03,C++ 11,C11

  • 结构 - C11

我是对还是不对

ziu*_*ziu 5

关于C的陈述是正确的:匿名结构和联合的标准化是相当新的(C11)cfr.GCC男子.

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

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

众所周知,C++中禁止匿名结构,我没有找到任何修改.从Visual Studio 2012开始,C++被证实不支持此功能.