枚举与宏的区别详解
最编程
2024-04-22 11:08:00
...
枚举常量与宏的区别主要有几点:
1。枚举常量是实体中的一种,但宏不是实体;
2。枚举常量属于常量,但宏不是常量;
3。枚举常量具有类型,但宏没有类型,枚举变量具有与普通变量相同的诸如作用域、值等性质,但宏没有,宏不是语言的一部分,它是一种预处理替换符。枚举类型主要用于限制性输入,例如,某个函数的某参数只接受某种类型中的有限个数值,除此之外的其它数值都不接受,这时候枚举能很好地解决这个问题。能用枚举尽量用枚举,否则在调试的时候你是看不到当时的值的。
4。用宏去定义一个变量如果你定义了一个相同的变量那么要看谁在前面,如果宏在前面变量会产生编译错误,而且这个错误很难查找,如果那个宏隐藏的很深的话。如果你定义的变量在前那么更可怕了,直接没有错误,但是宏定义被自定义的变量悄悄替换了。用枚举定义的话不管你定义的顺序前后关系怎样都会产生重复定义的错误。从上面的举例来看枚举比宏好用的多。宏还有一个特性是没有作用域,这里的作用域是指宏定义以后的代码都可以使用这个宏。宏可以被重复定义这个可能导致宏的值被修改。所以建议不要用宏去定义整形的变量,用枚举或者const。又会有用const还是枚举呢,世界一向如此纠结,枚举只能表示整形,const可以修饰任何类型。整形的情况下如果你要定义几种有关系的数值那么用枚举,否则用const。
推荐阅读
-
vue3 学习 (2) 选项 API 与组合 API 的区别
-
JumpServer 开源版与企业版功能的区别
-
Google 开发人员帐户:企业账户与个人账户的区别和优缺点比较
-
最新热门话题!快速分销商与 Goodwill 有哪些区别?加入快速分销的优势是什么?寻找抖音达人亚伦
-
专业资格与职称的区别
-
说到消费女性的身体焦虑,大码女装与 BM 风格并无本质区别
-
JavaEE] 线程的概念--进程与线程的区别线程的概念--进程与线程的区别
-
大数据竞赛:Hive 与 HBase,您知道两者的区别和适用场景吗?
-
积累与累积的区别 - 金块
-
[Elasticsearch <3>✈️✈️] 常用基本属性的用法及与 MySQL 的区别