c——enum
来源:互联网 发布:c语言getch 编辑:程序博客网 时间:2024/05/13 04:03
enum
enum EPokerColor{ DIAMOND, CLUB, HEART = 8, SPADE,};void enum_type(){ printf("DIAMOND = %d, CLUB = %d, HEART = %d, SPADE = %d\n", DIAMOND, CLUB, HEART, SPADE); enum EPokerColor pokerColor1; enum EPokerColor pokerColor2; enum EPokerColor pokerColor3; pokerColor1 = 18; pokerColor2 = HEART; pokerColor3 = pokerColor1 + pokerColor2; printf("pokerColor1 = %d, pokerColor2 = %d, pokerColor3 = %d\n", pokerColor1, pokerColor2, pokerColor3);}
output:
DIAMOND = 0, CLUB = 1, HEART = 8, SPADE = 9pokerColor1 = 18, pokerColor2 = 8, pokerColor3 = 26
结论:
- 枚举常量可显式指定,也可默认指派,默认指派值为其前一个枚举常量值递增1,第一个枚举常量默认指派值为0,枚举常量值可重复
- 枚举类型的本质是整型,整型可以执行的操作,枚举类型亦可
- 引入枚举类型的目的只是为了增强代码可读性
enum类型
enum EShape{ RECT = 2147483647,//32位int取值上限};enum EColor{ BLUE = 2147483648,//32位int取值上限+1,};enum EAnimal{ DOG = 9223372036854775807,//64位long取值上限};enum EFood{ RICE = 9223372036854775808,//64位long取值上限+1};void type_check(signed int){ cout << "signed int" << endl;}void type_check(unsigned int){ cout << "unsigned int" << endl;}void type_check(signed long){ cout << "signed long" << endl;}void type_check(unsigned long){ cout << "unsigned long" << endl;}void type_check(signed long long){ cout << "signed long long" << endl;}void type_check(unsigned long long){ cout << "unsigned long long" << endl;}void enum_type_check(){ cout << "-----sizeof-----" << endl; cout << "sizeof(int) = " << sizeof(int) << endl; cout << "sizeof(long) = " << sizeof(long) << endl; cout << "sizeof(long long) = " << sizeof(long long) << endl; cout << "-----enum-----" << endl; enum EShape shape; enum EColor color; enum EAnimal animal; enum EFood food; type_check(shape); type_check(color); type_check(animal); type_check(food);}
output:
-----sizeof-----sizeof(int) = 4sizeof(long) = 8sizeof(long long) = 8-----enum-----signed intunsigned intsigned longunsigned long
结论:
- 枚举类型对应的整型按取值范围以int->unsigned int->long->unsigned long->long long->unsigned long long顺序匹配,确保匹配类型包含枚举类型所有枚举常量值
0 0
- c——enum
- c++——union、struct、enum
- c#——Enum之自定义属性
- C——union、enum、file
- cpp——与c之不同——enum
- C语言难点专题——enum, struct 和 Union
- enum关键字——C语言深度剖析
- C关键字解读——volatile, extern, struct, union, enum
- c#——Enum之Json序列化
- c#——Enum之Json序列化
- c#——Enum之Json序列化
- c enum
- java——enum
- C语言枚举类型(Enum)——摘自C语言中文网
- Android —— 枚举Enum
- Java 基础 —— enum
- C#的Enum—枚举
- Effective C++——》条款2:尽量以const,enum,inline替换#define .
- 洛谷 P1514 引水入城
- jenkins 配置master 和 slave实践
- 解决表格自动换行问题:让表格宽度根据内容长度自动伸展
- 2017.1.10 算法测试题集 - 1004 - 无环图
- iOS 网络监测
- c——enum
- Python 爬虫系列教程
- jsp href 传多个参数,其中有参数为字符串
- 张豹看见张龙生死忍不住一声
- 关于jdk7开发的项目在jre6中运行
- 探讨学软件究竟学什么
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.错误
- C/C++——类的成员构造
- MIUI 6 沉浸式状态栏调用方法