C语言枚举类型、联合类型(共用体)

枚举类型

        关键字是enum,能够一一列举的类型能够使用枚举类型。例如:周一到周日、三原色的红绿蓝等等。

        枚举类型里面的值是枚举常量,这些都是有值的,默认是从0开始,依次加1,在定义的时候可以赋初值。

enum color
{
	red,
	green = 20,
	blue
};

枚举的好处

        #define可以定义常量,枚举类型定义的也是常量,但是枚举类型有类型的检查。

        #define定义的常量,预处理阶段就替换了,无法调试,枚举类型可以调试。

        枚举能够增加代码的可读性。

        可以一次定义多个常量。

联合体

        关键字是union,联合体的成员公用一块空间。

联合体的使用

        对于联合体的使用,只会使用其中一个成员变量,对其中一个成员变量的修改,都会影响另一个成员变量。

        联合体能够用来判断大小端。

#include <stdio.h>
union A
{
	char a;
	int b;
};
int main()
{
	union A u;
	u.b = 1;
	if (u.a)
		printf("小端\n");
	else
		printf("大端\n");
	return 0;
}

联合体的大小

        联合体的大小是至少是最大成员变量的大小。

        联合体也存在内存对齐

        arr数组的元素类型是char类型的,所以数组的对齐数是1,b的对齐数是4,该联合体的最大对齐数是4,开辟的空间需要是4的倍数,字符数组开辟了6个字节的空间,需要再开辟2个空间完成对齐。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值