在 C 的 C11 标准中,添加了匿名结构和匿名联合。
匿名联合/结构也称为未命名联合/结构,由于没有名称,因此不会创建它们的直接对象(或变量),通常我们在嵌套结构或联合中使用它们。
An anonymous struct declaration is a declaration that declares neither a tag for the struct, nor an object or typedef
name. Anonymous structs are not allowed in C++.
举例:
// C Program to demonstrate working of anonymous struct
#include <stdio.h>
struct scope
{
// Anonymous structure
struct
{
char alpha;
int num;
};
};
int main(void)
{
struct scope x;
x.num = 65;
x.alpha = 'B';
// Note that members of structure are accessed directly
printf("x.alpha = %c, x.num = %d\n", x.alpha, x.num);
return 0;
}
参考资料:
【1】https://www.geeksforgeeks.org/g-fact-38-anonymous-union-and-structure/
【2】https://docs.oracle.com/cd/E19205-01/819-5267/bkael/index.html