码迷,mamicode.com
首页 > 其他好文 > 详细

枚举、联合

时间:2017-07-14 23:04:59      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:lan   不能   缓冲区   target   复制   空间   数值   ref   引用   

枚举enum、联合union成员共用一个变量缓冲区

 

enum是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型

有些变量的取值被限定在一个有限的范围内

枚举值是常量不是变量,不能再对它赋值

0,1,2,3,4 …

enum weekday{sun,mon,tue,wed,thu,fri,sat};

weekday a, b;

enum weekday{sun,mon,tue,wed,thu,fri,sat}a,b;

enum {sun,mon,tue,wed,thu,fri,sat}a,b;

 

只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如一定要把数值赋予枚举变量,则必须用强制类型转换

a=(enum weekday)2;    a = (weekday)2;

即 a=tue;

 

inline week operator++( week &rs, int ) {   //重载后++    a++时还需判断是否超出范围

       week oldWeek = rs;

       rs = (week)(rs + 1);

       return oldWeek;

}

 

 

union  所有成员共用一个空间,并且同一时间只能储存其中一个成员变量的值

union foo

{

       int I;

       char c;

       double k;

}

union foo bar;   8个字节

 

{char s[10]; int a;  }   10、 4   所以占12个字节

 

union的成员不可以为静态、引用,如果是自定型态的话,该自订型态成员不可以有建构函式、解构函式或是复制指定运算子。

 

对一个成员赋值,其他成员的值就不存在了。

枚举、联合

标签:lan   不能   缓冲区   target   复制   空间   数值   ref   引用   

原文地址:http://www.cnblogs.com/xslwm/p/7172977.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!