Android NDK开发之C语言基础04:联合体&枚举

一、联合体

(一)定义:在C语言中允许多个不同变量共享同一内存区的功能成为联合(union)。声明联合的语法类似于结构,给联合指点标记名称的方式通常也是类似的。关键字 union 。示例代码如下:

union myValue{
    int x;
    int y;
    double z;
};

//声明变量
union myValue value;

联合成员的访问方式和结构成员完全相同。例如:

value.x = 12;
value.y = 24;
value.z = 23.9;//最后一次赋值有效

注:
1.联合实例所占的字节数是其最大的成员所占的空间;
2.定义联合指针的方式与定义结构指针相同。通过指针访问联合成员的方式与结构相同。

(二)特点
不同类型的变量共同占有一段内存(相互覆盖),联合变量任何时刻只有一个成员存在。即 共享内存

二、枚举

(一)定义:在编程时,常常希望变量存储一组可能值中的一个。例如一个变量存储当前月份的值。这个变量应只存储12个可能值中的一个,分别对应于1~12月。C语言中的枚举(enumeration)就用于这种情形。
利用枚举,可以定义一个新的 整数类型,该类型变量的值域是我们指定的几个可能值。下面的语句定义了一个枚举类型Weekday:

enum Weekday { 
    Monday, 
    Tuesday, 
    Wednesday, 
    Tursday, 
    Friday, 
    Saturday, 
    Sunday};

这个语句定义了一个类型,而不是变量。

声明Weekday类型的一个新变量,并初始化它:

enum Weekday weekday = Monday;

也可以在定义枚举类型时,声明该类型的变量:

enum Weekday { 
    Monday, 
    Tuesday, 
    Wednesday, 
    Tursday, 
    Friday, 
    Saturday, 
    Sunday} today , tomorrow ;

还可以在同一个语句中初始化变量:

enum Weekday { 
    Monday, 
    Tuesday, 
    Wednesday, 
    Tursday, 
    Friday, 
    Saturday, 
    Sunday} today = Monday, tomorrow = today + 1;

tomorrow 的初始值比 today 大1。但是在执行这个操作时,要确保算数运算的结果是一个有效的枚举值。

END


我的在行一点,欢迎大家扫码提问:
在行一点

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈有余v

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值