1 題目
功能:使用共用體處理任意類型數(shù)據(jù)描述:設(shè)計(jì)一個(gè)共用體類型,使其成員包含多種數(shù)據(jù)類型,根據(jù)不同的類型,輸出不同的數(shù)據(jù)
2 思路
首先設(shè)定了各種數(shù)據(jù)類型的變量,由于這些變量不是全部一次性處理的,所以就采用了共用體類型在下面例子中,通過 TypeFlag 來識別在共用體重的存儲類型,執(zhí)行程序的時(shí)候就會按照不同的存儲方式進(jìn)行存儲到 union_demo 變量中
3 代碼
#include <stdio.h>
#include <stdlib.h>
/**
函數(shù):fun()
功能:使用共用體處理任意類型數(shù)據(jù)
描述:設(shè)計(jì)一個(gè)共用體類型,使其成員包含多種數(shù)據(jù)類型,根據(jù)不同的類型,輸出不同的數(shù)據(jù)
**/
union{? ? ? ? ? ? ? ? ? // 定義共用體
? inti;? ? ? ? ? ? ? ? ? // 共用體成員
? charc;
? floatf;
? doubled;
}union_demo;? ? ? ? ? ? ? ? ? ? // 聲明共用體類型的變量
intmain(intargc,charconst*argv[]) {
? charTypeFlag;
? printf("輸入成員類型:\n");
? scanf("%c",&TypeFlag);? ? ? ? ? ? ? ? // 輸入類型符
? printf("輸入數(shù)字:\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");
}
示例結(jié)果:
$ gccex051.c-odemo
$ ./demo
輸入成員類型:
i
輸入數(shù)字:
10
10