1. 定义共用体:
#include <stdio.h>
// 定义共用体
union Data {
int intValue;
float floatValue;
char stringValue[20];
};
int main() {
// 使用共用体
union Data data;
// 对共用体进行赋值
data.intValue = 10;
// 输出不同成员的值
printf("intValue: %d\n", data.intValue);
data.floatValue = 3.14;
printf("floatValue: %.2f\n", data.floatValue);
strcpy(data.stringValue, "Hello");
printf("stringValue: %s\n", data.stringValue);
return 0;
}
2. 共用体的应用场景:
共用体通常用于需要在不同类型之间进行切换的情况。在任何时刻,只能使用共用体的一个成员。
#include <stdio.h>
// 定义共用体
union Value {
int intValue;
float floatValue;
char stringValue[20];
};
// 定义枚举类型,表示共用体的类型
enum Type {
INT,
FLOAT,
STRING
};
// 定义包含类型和值的结构体
struct Variant {
enum Type type;
union Value value;
};
int main() {
// 使用共用体实现一种变体类型
struct Variant variant1;
variant1.type = INT;
variant1.value.intValue = 42;
// 输出变体的值
switch (variant1.type) {
case INT:
printf("Variant Value (INT): %d\n", variant1.value.intValue);
break;
case FLOAT:
printf("Variant Value (FLOAT): %.2f\n", variant1.value.floatValue);
break;
case STRING:
printf("Variant Value (STRING): %s\n", variant1.value.stringValue);
break;
}
return 0;
}
共用体的使用需要小心,确保你了解当前存储的是哪个类型的数据。
转载请注明出处:http://www.pingtaimeng.com/article/detail/3185/C语言