当前位置: 首页 > ai >正文

编程规范之枚举

编程规范之枚举

1.1 初始化枚举项

枚举平时用的也没有很频繁,今天看代码规范提到枚举类型初始化枚举项。并对初始化枚举项进行了归纳。包括下面三个

不进行显示初始化,交由编译器完成。

对第一个枚举项的显式初始化,这样可以强制整数值的分配从给定的值开始。采用这种方法,必须确保所使用的初始化值足够小,是的后续值不会超过枚举项所使用潜在类型的存储范围

对枚举中所有枚举项显示初始化。

另外提到c++直接从c继承了枚举类型,其工作方式基本和c类似,只是枚举在c++中是”真正的类型“,增加了编译期检查。c++11提供了类型安全的枚举类,使用enum struct和enum class来声明,相对于c风格(unscoped enum),该类型不会被隐式转换为整数类型。

1.2 优先使用枚举类而不是枚举项

当然这个是在c++中才行。c只有普通枚举。提到普通类型的枚举项和他的枚举类型在一个作用域空间。会污染命名空间,因而在这个作用域内不能再使用相同标识符声明变量。

写了下面的代码验证。同时还注意了枚举的规范写法。

//enum WEEKDAY
//{
//    MONDAY = 0,
//    TUESDAY,
//    WEDNESDAY,
//    THURSDAY,
//    FRIDAY,
//    SATURDAY,
//    SUNDAY
//};		//写法不对enum Weekday
{MONDAY = 0,TUESDAY,WEDNESDAY,
};const bool MONDAY = false;			// 报错重复定义enum class WeekdayClass
{THURSDAY = 3,FRIDAY,SATURDAY,SUNDAY
};const bool THURSDAY = false;

除此之外,普通枚举的枚举项太容易被隐式转换为int,而某些转换可能并不是程序员所期望的。枚举类的枚举项是强类型的,不允许隐式转换为数值。改为使用枚举类后,例子中的意外情况在编译时就会被发现。

http://www.xdnf.cn/news/284.html

相关文章:

  • poj1067 取石子游戏 威佐夫博弈
  • Vue3笔记
  • 2364. 统计坏数对的数目 之 灵活思想、学会变形
  • 大模型Rag - embedding
  • windows下安装mcp servers
  • 从零到精通:用 GoFrame 和 go-resty 优雅调用第三方 HTTP API
  • DDoS防御发展史
  • 如何快速构建跨系统的数据同步机制?
  • uni.createInnerAudioContext踩坑duration在真机环境一直为0
  • RAG-概述
  • 贪心、动态规划、其它算法基本原理和步骤
  • Kaamel隐私与安全分析报告:Microsoft Recall功能评估与风险控制
  • VMWARE安装ubuntu
  • 代码随想录算法训练营第三十八天| 322. 零钱兑换 279.完全平方数 139.单词拆分
  • javaSE.类型擦除机制
  • k8s教程3:Kubernetes应用的部署和管理
  • Foundation Agent:深度赋能AI4DATA
  • 宿舍DIY迷你空调实施方案
  • 敏捷开发管理流程
  • Qt 创建QWidget的界面库(DLL)
  • 论坛测试报告
  • redis不要以root权限启动(linux)
  • c加加重点学习之day03
  • 仿腾讯会议项目开发——网络嵌入
  • 软件测试之接口测试详解
  • 开源AI守护每一杯------奶茶咖啡店视频安全系统的未来之力
  • SQL-子查询
  • iPaaS应用集成平台在交通运输行业有哪些应用场景
  • (51单片机)LCD显示数据存储(DS1302时钟模块教学)(LCD1602教程)(独立按键教程)(延时函数教程)(I2C总线认识)(AT24C02认识)
  • 643SJBHflash个人网站