编程习惯-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)不会报错,这个是语法不允许的,只是编译器有时候会忽略或者优化掉!!!


目录
相关文章
|
自然语言处理
CMake基础(3)静态库
CMake基础(3)静态库
219 1
|
分布式数据库 Hbase
HBase sequenceId知识点略记
在HBase中,sequenceId是实现一致性的灵魂,这里的一致性有两方面意思: 顺序性,即先写的先被读到,未提交的写不能被读到; 完整性,包含如下几点; 未持久化到hfile的数据,对应的wal文件不能删除 如果由于wal文件过多需要清理,则需要先把对应的数据持久化 异常恢复过程中,需要.
1921 0
|
Rust 算法 安全
【密码学】一文读懂HMAC
本文将来聊一聊基于哈希函数的消息认证码,在此之前,先来科普一下什么是 「消息认证码」 (MAC), 先来看一个简单的栗子
2271 0
【密码学】一文读懂HMAC
|
12月前
|
运维 安全 Devops
DevOps实践中的安全审核和合规性
在DevOps实践中,确保安全审核和合规性至关重要。通过自动化合规审查、持续安全集成、基础设施即代码管理、敏捷合规框架、跨部门合作、教育与培训、实施DevSecOps模型、使用安全编码技术、整合正确工具及采用安全即代码等措施,组织能有效管理并降低合规与安全风险,促进高效可靠的DevOps文化发展。
|
边缘计算 运维 监控
|
存储 监控 前端开发
OpenStack组件Horizon
【8月更文挑战第20天】
395 4
|
前端开发
Canvas绘画设计之网格线背景设置成网格源码
Canvas绘画设计之网格线背景设置成网格源码
|
存储 Java Linux
Linux环境变量配置及常见问题解决方案
Linux环境变量配置及常见问题解决方案
|
存储 SQL 算法
【Hive】ORC、Parquet等列式存储的优点
【4月更文挑战第14天】【Hive】ORC、Parquet等列式存储的优点
|
存储 安全 架构师
内存泄漏专题(9)内存池陷阱
内存泄漏专题(9)内存池陷阱
178 0