05-枚举和共用体

一. 枚举

1.1 枚举的定义和优点

  • 枚举定义的值是常量, 可以被初始化一次, 如果没有手动初始化, 系统会将第一个常量自动初始化为0, 往后每个常量在前一个基础上 + 1
  • 枚举对比宏定义更加严谨有类型检查, 并且可以增加代码的可维护性.
#include <stdio.h>

enum Color
{
	read,
	blue,
	yellow = 9,
	green          //10
};
int main()
{
	enum Color c = blue;  //注意这里要写blue 不能写9, 虽然C中语法是允许的, 但是不符合语义. 在Cpp中会被检测出错误
	
	printf("%d, %d, %d, %d", read, c, yellow, green); // 0, 1, 9, 10
	return 0;
}

二. 联合体(共用体)

2.1 联合体定义

  • 联合体的内存大小最少是最大成员所占内存空间大小. (内存应是成员最大对齐数的整数倍.)
  • 联合体成员不能同时使用
 union Un
{
  char c;
  int i; // sizeof(union Un) --> 4
};

union 
{
  char c;
  int i;
}u; //匿名方式定义, 通常定义在函数内部.

2.2 共用体内存大小计算

  • sizeof(union Un) = 8
union Un
{
  int a;
  char arr[5]; 
};
posted @ 2023-06-24 16:43  烙铁666  阅读(16)  评论(0)    收藏  举报