共用体与枚举:C++高效内存技巧
1、共用体
共用体(union)是一种数据格式,它能储存不同类型的数据,但是只能同时储存同一种类型的元素,也就是说,共用体能储存int ,double,long 等等,但是在同一时间只能储存int,double或者long一种类型的数据。共用体的句法与结构相似,但是含义不同,例如:
union onedall
{
int int_val;
double double_val;
long long_val;
}
可以是用onedall来储存int ,double,和long,条件是不能在同一时间进行。例如下面:
onedall pall;
pall.int_val=15;
cout<<pall.int_val<<endl;
pall.double_val=30;
cout<<pall.double_val;
共用体同时用于储存多种数据类型(不会同时使用),这样可以节省内存空间。
2、枚举
C++的enum工具提供了另一种创建符号常量的方式,这种方式可以替代const,他还允许定义新类型,但是必须严格按照要求。使用枚举的句法与结构相似,例如下面:
enum color{red,orange,yellow,green,blue,violet,indigo,ultraviolet}
这条语句完成了两项任务:
1、让color成为枚举变量,enum是枚举的关键字,就像struct变量被称为结构一样。
2、将red,yellow,blue等作为符号常量,分别对应0~6,这些常量叫做枚举量。
在默认情况下,可以将整数值赋值给符号常量,后面的常量在前面的整数后面递增,例如如果将green赋值为5,则blue为六。
因为枚举量可以通过整型提升为整数,所以枚举量也可以进行计算,例如
red=3+green;
indigo=blue*2;
这就是枚举和共用体的知识力,后面我们还会更加详细的讲到枚举的用法。