海南州商城网站建设,网页制作与网站建设 在线作业,黄冈网站建设公司,wordpress 手机发文章C中的enum#xff08;枚举#xff09;类型是一种用户定义的类型#xff0c;用于表示一组整数值#xff0c;每个值都有对应的名称#xff0c;增强了代码的可读性和可维护性。
1. 基本枚举类型
基本的枚举类型定义了一组命名的整数常量。
enum Color {RED,GREEN,BLUE
};C…
C中的enum枚举类型是一种用户定义的类型用于表示一组整数值每个值都有对应的名称增强了代码的可读性和可维护性。
1. 基本枚举类型
基本的枚举类型定义了一组命名的整数常量。
enum Color {RED,GREEN,BLUE
};Color myColor RED;在这个例子中RED、GREEN和BLUE被自动赋予了整数值默认从0开始。
2. 显式指定枚举值
可以在定义枚举类型时为每个枚举值显式指定整数值。
enum StatusCode {OK 200,NotFound 404,Error 500
};StatusCode myStatus NotFound;这里OK、NotFound、Error分别被赋予了200、404、500作为它们的值。
3. 枚举与整数类型的转换
枚举值可以隐式转换为整数但整数到枚举类型的转换需要显式转换。
enum Color {RED,GREEN,BLUE
};Color color RED;
int colorValue color; // 隐式转换为整数Color anotherColor static_castColor(1); // 显式从整数转换为枚举类型4. enum class强类型枚举
C11引入了enum class或称作强类型枚举提供了更好的类型安全性。
enum class Color {RED,GREEN,BLUE
};Color color Color::RED; // 必须使用作用域解析运算符// 不允许隐式转换为整数下面的代码会引发编译错误
// int colorValue color;// 显式转换是允许的
int colorValue static_castint(Color::GREEN);5. 枚举的应用
枚举通常用于表示一组相关的常量值使得代码更加清晰易读。
enum class Day {MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
};void printDay(Day day) {if (day Day::SATURDAY || day Day::SUNDAY) {std::cout Its weekend! std::endl;} else {std::cout Its a weekday. std::endl;}
}printDay(Day::SATURDAY);