#include <stdio.h>
struct Fuck2
{
union
{
struct
{
int a; int b;
};
struct
{
int c; int d;
};
};
} foo;
int main()
{
foo.a=3;
foo.b=4;
foo.c=5;
printf("%d\t%d\n",foo.a,foo.b);
return 0;
}
当struct
内部的union
类型没有名字也没有对象的话, union
内部的元素会直接成为struct
的元素. 所以如果在现在的基础上不能再在struct
中声明名字为a
或b
或c
或d
的变量了. 如果union
有名字的话, 比如bar
,就只能把printf
语句中的foo.a
改成foo.bar.a
了