如何使用匿名union
时间: 2023-09-07 16:15:23 浏览: 44
可以使用匿名union来定义一个联合类型,在该联合类型中定义不同类型的成员变量。在使用匿名union时,可以直接访问union成员,而不需要通过union名称来访问。下面是一个使用匿名union的示例代码:
```
#include <stdio.h>
struct myStruct {
int type;
union {
int i;
float f;
char c;
};
};
int main() {
struct myStruct s;
s.type = 1;
s.i = 10;
printf("Type: %d, Value: %d\n", s.type, s.i);
s.type = 2;
s.f = 3.14;
printf("Type: %d, Value: %f\n", s.type, s.f);
s.type = 3;
s.c = 'A';
printf("Type: %d, Value: %c\n", s.type, s.c);
return 0;
}
```
在这个例子中,我们定义了一个名为myStruct的结构体类型,其中包含一个整型成员变量type和一个匿名union类型。匿名union中包含了三个不同类型的成员变量:整型i,浮点型f和字符型c。在main函数中,我们声明了一个myStruct类型的变量s,并分别给i、f和c赋值,并输出了它们的值。由于匿名union中的成员变量与myStruct中的成员变量共享同一段内存空间,因此在给type赋值时,会覆盖掉union中的成员变量的值。