1.共用体
2.共用体的优点
(1) 分段使用
(2) 节省空间
对于有几个变量不会在某一段时刻同时出现,那么我们利用共用体,可以节省内存空间。
(3) 代替强类型转换
例如:在网络编程中,经常会用到传入一串数据,这些数据将会以参数的形式传递给不同的函数。因此可以用到共用体,让共用体里面全都是函数指针,在同一时刻指向不同的函数。因此来提高编程效率,以及节省空间。
例子:
#include “stdafx.h”
union AA
{
char (*p)(char,char);
int (*p1)(int,int) ;
float (*p2)(float,float) ;
double (*p3)(double,double);
};
char fun ( char aa,char iNumber)
{
printf (“char 函数”);
return 0;
}
int fun1 ( int aa,int iNumber)
{
printf (“int 函数”);
return 0;
}
float fun2 ( float aa,float iNumber )
{
printf (“float 函数”);
return 0;
}
double fun3 ( double aa,double iNumber )
{
printf (“double 函数”);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
AA *aa = new AA;
aa->p = fun;
// 在这儿,定义的是那一个,那么里面所有的指针(4个指针)都是指向定义的那个指针。如果定义了多个,那么所有的指针
aa->p1 = fun1;
// 都指向返回值最复杂的的那个函数
//aa->p2 = fun2;
//aa->p3 = fun3;
char a = ‘a’;
char b = ‘b’;
aa->p(a,b);
int cc,bb;
cc = bb =1;
aa->p1(cc,bb);
float dd,ff;
dd = ff = 1.2;
aa->p2(dd,ff);
double gg,hh;
gg = hh = 1.3333;
aa->p3(gg,hh);
return 0;
}