开发者社区> 霖枫> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

编程习惯-enum的用法

简介: enum的用法说明 以下摘自维基百科: 在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。
+关注继续查看

enum的用法说明


以下摘自维基百科:

数学计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。

枚举是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。 枚举的说明与结构和联合相似,其形式为:

enum 枚举名{ 
    标识符①[=整型常数], 
    标识符②[=整型常数], 
    ... 
    标识符N[=整型常数], 
}枚举变量;

如果枚举没有初始化,即省掉"=整型常数"时,则从第一个标识符开始,顺次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后,其后的成员按依次加1的规则确定其值。例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3。
enum string{x1, x2, x3, x4}x;

当定义改变为:

enum string 
{
    x1,
    x2=0,
    x3=50,
    x4, 
}x;

则x1=0, x2=0, x3=50, x4=51 注意:

  1. 枚举中每个成员(标识符)结束符是",", 不是";",最后一个成员可省略","。
  2. 初始化时可以赋负数,以后的标识符仍依次加1。
  3. 枚举变量只能取枚举说明结构中的某个标识符常量。

例如:

enum string
{
    x1=5,
    x2,
    x3,
    x4,
};
enum string x=x3;

其中标红的一天很重要,如果给枚举变量(exp:x)赋了其他的int类型的值,在C++编译器中会导致编译错误!

但是有些编译器(gcc)不会报错,这个是语法不允许的,只是编译器有时候会忽略或者优化掉!!!


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基础编程题目集 - 7-18 二分法求多项式单根(20 分)
基础编程题目集 - 7-18 二分法求多项式单根(20 分)
22 0
【小家Java】深入理解Java枚举类型(enum)及7种常见的用法(含EnumMap和EnumSet)(下)
【小家Java】深入理解Java枚举类型(enum)及7种常见的用法(含EnumMap和EnumSet)(下)
38 0
【小家Java】深入理解Java枚举类型(enum)及7种常见的用法(含EnumMap和EnumSet)(上)
【小家Java】深入理解Java枚举类型(enum)及7种常见的用法(含EnumMap和EnumSet)(上)
32 0
【小家Java】深入理解Java枚举类型(enum)及7种常见的用法(含EnumMap和EnumSet)(中)
【小家Java】深入理解Java枚举类型(enum)及7种常见的用法(含EnumMap和EnumSet)(中)
36 0
ABAP多线程编程
ABAP多线程编程
55 0
Linux (x86) Exploit 开发系列教程之十 使用 Malloc Maleficarum 的堆溢出
使用 Malloc Maleficarum 的堆溢出 译者:飞龙 原文:Heap overflow using Malloc Maleficarum 预备条件: 理解 glibc malloc 从 2004 年末开始,glibc malloc 变得更可靠了。
877 0
enum
创建enum时,编译器会为你生成一个相关的类,这个类继承自java.lang.Enum。 调用enum的values()方法,可以返回enum实例的数组,并且该数组中的元素严格保持其在enum中声明时的顺序。ordinal()方法返回一个int值,这是每个enum实例在声明中的次序,从0起。 可以使用==来比较enum实例。Enum类实现了Comparable接口,所以它具有compa
966 0
BEvent_标准控件Event的用法(案例)(待整理)
2014-06-06 Created By BaoXinjian 一、摘要        二、案例      Thanks and Regards ERP技术讨论群: 288307890 技术交流,技术讨论,欢迎加入 Technology Blog Created By O...
569 0
+关注
54
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载