1 题目
功能:使用共用体处理任意类型数据描述:设计一个共用体类型,使其成员包含多种数据类型,根据不同的类型,输出不同的数据
2 思路
首先设定了各种数据类型的变量,由于这些变量不是全部一次性处理的,所以就采用了共用体类型在下面例子中,通过 TypeFlag 来识别在共用体重的存储类型,执行程序的时候就会按照不同的存储方式进行存储到 union_demo 变量中
3 代码
#include <stdio.h>
#include <stdlib.h>
/**
函数:fun()
功能:使用共用体处理任意类型数据
描述:设计一个共用体类型,使其成员包含多种数据类型,根据不同的类型,输出不同的数据
**/
union{ // 定义共用体
inti; // 共用体成员
charc;
floatf;
doubled;
}union_demo; // 声明共用体类型的变量
intmain(intargc,charconst*argv[]) {
charTypeFlag;
printf("输入成员类型:\n");
scanf("%c",&TypeFlag); // 输入类型符
printf("输入数字:\n");
switch(TypeFlag) { // 多分支选择语句判断输入
case'i':scanf("%d",&union_demo.i);break;
case'c':scanf("%c",&union_demo.c);break;
case'f':scanf("%f",&union_demo.f);break;
case'd':scanf("%lf",&union_demo.d);
}
switch(TypeFlag) { // 多分支选择语句判断输出
case'i':printf("%d",union_demo.i);break;
case'c':printf("%c",union_demo.c);break;
case'f':printf("%f",union_demo.f);break;
case'd':printf("%lf",union_demo.d);
}
printf("\n");
}
示例结果:
$ gccex051.c-odemo
$ ./demo
输入成员类型:
i
输入数字:
10
10