本文主要介绍 C/C++ 编程语言中枚举类型(enum)的相关知识,同时通过示例代码介绍枚举类型的使用方法。

1 概述

1.1 What

枚举类型(enumerations)是 C/C++ 编程语言的一种派生数据类型,它是由用户定义的若干枚举常量组成的集合。

如果一个变量只有几种可能的值,那么可以将其定义为枚举类型。所谓“枚举”,是指将变量的值一一列举出来,变量只能在列举出来的值的范围内进行取值。

1.2 How

使用关键字 enum 创建枚举类型。枚举类型的一般用法如下:

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

说明:

  • 需要注意枚举类型的定义形式:除最后一行外,每一行枚举常量以逗号“,”结尾,但是最后一行没有结尾标点符号;
  • 在使用枚举类型时,通常都会为定义的枚举类型设置一个保留位,便于后续对该枚举类型进行扩展,这个保留位通常会由最后一个枚举常量充当;
  • 在没有进行初始化(即省掉“=整型常数”)时,枚举类型中的第一个标识符的值默认为“0”。

2 示例代码

枚举类型的示例代码内容如下:

#include <iostream>using namespace std;enum eDemoEnum
{some1,some2,some3,some4,somen = (int)(((unsigned int)(-1))/2)
};int main()
{int nMaxInt = (unsigned int)(-1);int nReserved = (int)(((unsigned int)(-1))/2);cout << "some1 is: " << some1 << endl;cout << "some2 is: " << some2 << endl;cout << "somen is: " << somen << endl;cout << "(unsigned int)(-1) is: " << (unsigned int)(-1) << endl;cout << "nMaxInt is: " << nMaxInt << endl;cout << "nReserved is: " << nReserved << endl;return 0;
}

编译并运行上述代码,结果如下:

通过上面的运行结果,可知:

  • 枚举类型中的枚举常量,默认情况下从“0”开始计数,后面的枚举常量的值依次递增;
  • 表达式“(unsigned int)(-1)”取值为“4294967295(-1)”,但是如果将该表达式直接赋值给 int 类型的变量时,该表达式的值就会转换为 int 类型的值“-1”。而如果直接使用表达式“(unsigned int)(-1)”参会其他运算(如示例中的除法),再将整体的运算结果进行 int 类型转换,就不会出现类似的问题了。在平时涉及到类型转换时,需要特别注意这些细节;
  • 示例中使用了表达式“(int)(((unsigned int)(-1))/2)”的值对应的枚举常量“somen”作为枚举类型 eDemoEnum 的保留位。

C/C++编程语言中枚举类型(enum)介绍相关推荐

  1. 《挑战30天C++入门极限》新手入门:C/C++中枚举类型(enum)

        新手入门:C/C++中枚举类型(enum) 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来. ...

  2. C#中枚举类型enum的使用[转载]

    C#中枚举类型enum的使用 关于enum应用的总结(摘自http://hi.baidu.com/yangzhiping/blog/item/9d841fd5a4309dc451da4baa.html ...

  3. python中枚举类型enum用法_Python枚举类型Enum用法详解

    实际开发中,我们离不开定义各种类型,当我们需要定义类型时,一般是通过一组整数来定义.比如:定义不同的月份 JAN 1 FEB 2 MAR 3 ... NOV 11 DEC 12 复制代码 大多数人想到 ...

  4. Java中枚举类型Enum的一种使用方式

    枚举类定义如下: public enum Status {SCUUESS("1", "成功"), FAILED("2", "失败& ...

  5. c语言枚举类型enum用法参数,C语言枚举类型(Enum)

    在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例, ...

  6. c枚举类型enum例题_一篇文章让你详细了解Java中Enum枚举类的使用

    文章前记 程序员工作久了便可能整日忙碌于"增删改查"中,迷失方向,毫无进步. 该公众号致力于分享软件开发相关的原创干货,助你完成从程序员到架构师的进阶之路! 努力!做一个NB的Co ...

  7. mysql中的枚举enum_mysql中枚举类型之enum详解

    enum类型就是我们常说的枚举类型,它的取值范围需要在创建表时通过枚举方式(一个个的列出来)显式指定,对1至255个成员的枚举需要1个字节存储: 对于255至65535个成员,需要2个字节存储.最多允 ...

  8. java枚举类型enum用法_java枚举类型enum用法和原理介绍【传智播客】

    Enum枚举类型 Enum的全写是Enumeration,这个词的翻译是列举.逐条陈述.细目.在程序语言中,枚举类型是一种特殊的数据类型(常用的数据类型比如字符串.整型),这种数据类型的变量值限定在固 ...

  9. mysql 枚举 enum用法_mysql中的枚举类型ENUM的用法:

    mysql中的枚举类型ENUM的用法: (2010-06-18 13:44:13) mysql中的枚举类型ENUM的用法: mysql中的枚举类型ENUM是一个字符串对象,它的值是自表创建时在列规定中 ...

  10. mysql枚举类型enum用法_mysql中枚举类型之enum详解

    enum类型就是我们常说的枚举类型,它的取值范围需要在创建表时通过枚举方式(一个个的列出来)显式指定,对1至255个成员的枚举需要1个字节存储: 对于255至65535个成员,需要2个字节存储.最多允 ...

最新文章

  1. SLAM之特征匹配(一)————RANSAC-------OpenCV中findFundamentalMat函数使用的模型
  2. R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤、条件推理决策树是传统决策树的一个重要变体、条件推理树的分裂是基于显著性测试而不是熵/纯度/同质性度量来选择分裂
  3. R语言rms包生存分析之限制性立方样条(RCS, Restricted cubic spline)分析:拟合连续性自变量和事件风险之间的关系并绘制直方图、平滑曲线、双Y轴于同一个图像中
  4. Python中的collections
  5. Docker Swarm删除节点
  6. mysql 5.5.35 单机多实例配置详解_MySQL 5.5.35 单机多实例配置详解
  7. linux下imwbr1进程,Linux服务器中木马wnTKYg
  8. 数据中心发电机组的选择及控制
  9. linux下varnish4配置语法(基础)
  10. 区块链产业生态、存在问题及政策建议|一文读懂新趋势
  11. 3GPP Partners
  12. Spring Bean的循环依赖解决方案
  13. 如何使keystone更有效率
  14. 高质量程序设计指南C++学习总结一
  15. VAssistX失效后重新安装双击没反应
  16. 你的Android HTTPS真的安全吗?
  17. pb语言是什么计算机语言,Pb编程语言深入讲解,了解pb语言的if判断语句!
  18. 美术集网校—多点透视如何运用于绘画中?学会透视增加绘画体积感!
  19. 找不到注册表中HKEY_CURRENT_USER的问题
  20. 简单实现一个手持弹幕功能+文字抖动特效

热门文章

  1. Zephyr移植到NXP MIMXRT1060_EVK-RT1061 CVL5A过程
  2. opencv 缺少boostdesc_bgm.i等文件
  3. Windows核心编程_获取鼠标指定位置的RGB颜色值
  4. 第十八届绵竹年画节开幕 大巡游展示清末年画《迎春图》场景
  5. ifconfig 命令,改变主机名,改DNS hosts、关闭selinux firewalld netfilter 、防火墙iptables规则...
  6. 关于x210开发板和主机、虚拟机ping通问题
  7. AJAX Accordion:可折叠面板的集合
  8. 51nod 1273 旅行计划——思维题
  9. CCNA学习笔记12-NAT
  10. Python中__init__和__del__方法介绍