0
点赞
收藏
分享

微信扫一扫

C语言:枚举和联合体——自定义类型

小磊z 2022-03-26 阅读 63

1.枚举

1.1枚举类型的定义

enum Day//星期
{
	Mon,
	Tues,
	Wed,
	Thur,
	Fri,
	Sat,
	Sun
};
enum Sex//性别
{
	MALE,
	FEMALE,
	SECRET
}enum Color//颜色
{
	 RED,
	GREEN,
	BLUE
};



1.2枚举的优点






2.联合体(共用体)

2.1联合体的定义

//联合类型的声明
union Un
{
char c;
int i;
};
int main()
{
	//联合变量的定义
	union Un un;
	//计算连个变量的大小
	printf("%d\n", sizeof(un));
}


2.2联合的特点



2.3使用联合体检测大小端

int check_sys()
{
	union Un
	{
		char c;
		int i;
	}u;
	u.i = 1;

	return u.c;
}

int main()
{
	if (1 == check_sys())
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}
	//int i = 1;
	//01 00 00 00
	/*if (1 == *(char*)&i)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}*/
	return 0;
}


2.4联合大小的计算

union Un1
{
	char c[5];//成员是数组时,对齐数看的是数组单个元素的类型大小,这里是1
	int i;//4
};
union Un2
{
	short c[7];//对齐数2 //大小为14
	int i;//4
};
//下面输出的结果是什么?
printf("%d\n", sizeof(union Un1));//c[5]总大小为5,联合体对齐数为4,得出为8
printf("%d\n", sizeof(union Un2));//16
举报

相关推荐

0 条评论