枚举与联合

一.枚举

枚举:一个被命名的整型常数的集合,关键字为:enum
枚举的定义与赋值:

enum Day//关键字加枚举名
{
 nan,   //注意:成员结束符(标识符)不是分号(;)而是逗号
 nv     //最后一个成员后边没有标识符
};

注意:1.像这样没有进行初始化,则代表从第一个成员起,依次赋值为0,1,2…。但当其某个成员赋值(初始化)后,其后边的成员按加1的规则确定其值。eg:

enum Num
{
 a,
 b=0,
 c,
 d=3,
 e
};

则a=0,b=0,c=1,d=3,e=4;
2.赋值时也可让其等于某个负数,规则仍然不变。
3.枚举变量的赋值只能取已经定义好的枚举列表中的某个值,
eg:

//接上述代码,创建一个枚举变量
enum Num ret;
 ret = e;//ret的赋值范围为(a,b,c,d,e)
而不能如此定义:
 ret = 3;
若必须要这样定义,则需要强制类型转化
 ret=(enum Num)3;//等同于ret=d;

注意:在使用枚举常量时,要清楚其为常量,不可被赋值,也不可被改变

二.联合(共用体)

联合:
一种特殊的自定义类型,可包含一系列的不同类型,相当于结构体;不过不同的是联合中的成员共用一块空间,所以在同一时间只能保留一个属性内容。
联合关键字:union
联合的定义

union Un
{
  char a;
  int b;
  float c;
};
Un有char,int,float三种属性;

联合大小计算
1.联合大小至少是最大成员的大小;例如:上述联合大小为8
2.当最大成员大小不是最大对齐数的整数倍时,就需要对齐至最大对齐数的整数倍处。例如:

union Un
{
 char a[5];
 int b;
};

其最大对齐数为:int型的4;
最大成员为char[5],大小为5;
故此根据对其原则:联合大小为8。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值