C语言程序复杂数据类型(共用体与枚举)

本文介绍了C语言中的复杂数据类型——共用体和枚举。共用体允许数据成员共享内存空间,常用于判断系统存储模式。枚举则用于定义有限的取值集合,本质上是int类型常量。通过一个示例展示了如何利用共用体判断系统是小端还是大端存储模式。此外,还提到了枚举在定义如性别、星期等固定取值场景的应用。
摘要由CSDN通过智能技术生成

C语言

复杂数据类型

共用体(Union)

也称为联合体,由多个数据成员构成,但这些数据成员共享同一段内存空间。

对某个数据成员赋值会覆盖其他数据成员,在某一时刻起作用的只有某一个数据成员(最近被赋值的那个数据成员)。

共用体的大小为其最长的数据成员所占内存空间大小。

共用体在实际开发中用的并不多,可以用于轻松分离一个多字节数据的每个字节,用于判断当前系统的存储模式等场景。

一般用的是小端存储模式(高字节高地址)

51单片机用的大端存储模式(高字节低地址)

验证存储模式方法:

union{
	short s;
	char c;
}t;
t.s = 1;
if(t.c)
	printf("当前系统为小端存储模式\n");
else
    printf("当前系统为大端存储模式\n");

枚举(Enum)

表示只有有限种不同取值的数据,比如性别,星期等。

和结构体、共用体一样,都是自定义数据类型,必须先声明再使用。

枚举元素:本质就是int类型常量,默认从0开始。同一个作用域范围内的不同枚举类型中的枚举元素不能同名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值