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


目录
相关文章
|
安全 Python
Python3,5行代码让电脑永不息屏。
Python3,5行代码让电脑永不息屏。
610 0
Python3,5行代码让电脑永不息屏。
|
7月前
|
人工智能 机器人 API
研发/运营/客服必看!这对知识库组合,帮你摆脱无效内耗
企业数字化转型深化与大模型技术普惠的双重驱动下,非结构化知识沉淀低效、信息孤岛割裂协作、文档解析混乱、检索精准度不足、跨平台集成壁垒高已成为组织知识资产管理的核心痛点,让无数团队陷入内耗、错失发展机遇。而基于AGPL‑3.0开源协议的大模型原生智能知识库系统,搭配智能文档解析服务,恰好精准破解这些痛点,以全链路AI能力、高兼容富文本编辑、多源异构内容导入、低代码第三方集成、毫秒级高精度文档解析为核心引擎,为技术手册、FAQ体系、博客门户、各类说明文档提供一站式搭建与运营解决方案
|
9月前
|
存储 人工智能 JSON
拒绝AI“胡言乱语”!手跨度教你深度DeepSeek-R1:立足落地垂直业务全流程
本文是《DeepSeek-R1架构落地指南》,聚焦垂直行业(法律、医疗、电商等)模型定制。详解LoRA微调原理与24小时实战流程:含环境配置、JSONL数据工程、训练参数调优及Rouge/L人工评估,助开发者低成本打造高精度“行业专家”模型。(239字)
384 2
|
6月前
|
人工智能 测试技术 Linux
面试别只盯着大厂,小公司反而能帮你看清很多事
找工作别只盯大厂!小公司面试虽未必给offer,却是高价值“职业诊断”:帮你厘清能力边界、岗位匹配度与业务差距。创始人直面交流、追问真实问题、倒逼项目复盘,还能校准方向、优化简历。适合迷茫在校生、表达薄弱者及海投无果者——关键在筛选靠谱团队并深度复盘。
|
7月前
|
SQL 安全 数据库
Microsoft SQL Server 2017 RTM GDR & CU31 (2026 年 4 月安全更新)
Microsoft SQL Server 2017 RTM GDR & CU31 (2026 年 4 月安全更新)
768 3
|
安全 搜索推荐 数据挖掘
虾皮店铺商品API接口的开发、运用与收益
虾皮(Shopee)作为东南亚领先的电商平台,通过开放API接口为商家和开发者提供了全面的数据支持。本文详细介绍虾皮店铺商品API的开发与运用,涵盖注册认证、API文档解读、请求参数设置、签名生成、HTTP请求发送及响应解析等步骤,并提供Python代码示例。API接口广泛应用于电商导购、价格比较、商品推荐、数据分析等场景,带来提升用户体验、增加流量、提高运营效率等收益。开发者需注意API密钥安全、请求频率控制及遵守使用规则,确保接口稳定可靠。虾皮API推动了电商行业的创新与发展。
1404 31
|
机器学习/深度学习 人工智能 物联网
操作系统的心脏——深入理解内核机制
在本文中,我们揭开操作系统内核的神秘面纱,探索其作为计算机系统核心的重要性。通过详细分析内核的基本功能、类型以及它如何管理硬件资源和软件进程,我们将了解内核是如何成为现代计算不可或缺的基础。此外,我们还会探讨内核设计的挑战和未来趋势,为读者提供一个全面的内核知识框架。
|
机器学习/深度学习 人工智能 算法
掌握 Copilot:AI编程的未来
掌握 Copilot:AI编程的未来
534 0
|
算法 Java 开发者
深入理解死锁的原因、表现形式以及解决方法,对于提高Java并发编程的效率和安全性具有重要意义
【6月更文挑战第10天】本文探讨了Java并发编程中的死锁问题,包括死锁的基本概念、产生原因和解决策略。死锁是因线程间争夺资源导致的互相等待现象,常由互斥、请求与保持、非剥夺和循环等待条件引起。常见死锁场景包括资源请求顺序不一致、循环等待等。解决死锁的方法包括避免嵌套锁、设置锁获取超时、规定锁顺序、检测与恢复死锁,以及使用高级并发工具。理解并防止死锁有助于提升Java并发编程的效率和系统稳定性。
928 0
|
安全 网络安全 文件存储
华为防火墙配置(L2TP)
L2TP概述、L2TP介绍、NAS-Initiated场景、Client-Initiated场景、Call-LNS场景、LNS对拨号用户进行身份认证、NAS-Initiated报文封装、NAS-Initiated安全策略、隧道协商、Client-Initiated报文封装、Client-Initiated安全策略、Call-LNS报文封装、L2TP配置、案例、配置过程、测试
1655 0
华为防火墙配置(L2TP)