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];
};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)