枚举和宏的区别

来源:爱站网时间:2019-09-26编辑:网友分享
对于枚举和宏的区别是不是有很多小伙伴们都不了解呢?那么今天爱站小编就将为大家讲解关于枚举和宏的区别的内容,感兴趣的小伙伴们一起来参考参考吧,相信对你的学习或工作有一定的帮助。

  对于枚举和宏的区别是不是有很多小伙伴们都不了解呢?那么今天爱站小编就将为大家讲解关于枚举和宏的区别的内容,感兴趣的小伙伴们一起来参考参考吧,相信对你的学习或工作有一定的帮助。

  枚举常量与宏的区别主要有几点:

  1。枚举常量是实体中的一种,但宏不是实体;

  2。枚举常量属于常量,但宏不是常量;

  3。枚举常量具有类型,但宏没有类型,枚举变量具有与普通变量相同的诸如作用域、值等性质,但宏没有,宏不是语言的一部分,它是一种预处理替换符。枚举类型主要用于限制性输入,例如,某个函数的某参数只接受某种类型中的有限个数值,除此之外的其它数值都不接受,这时候枚举能很好地解决这个问题。能用枚举尽量用枚举,否则在调试的时候你是看不到当时的值的。

  4。用宏去定义一个变量如果你定义了一个相同的变量那么要看谁在前面,如果宏在前面变量会产生编译错误,而且这个错误很难查找,如果那个宏隐藏的很深的话。如果你定义的变量在前那么更可怕了,直接没有错误,但是宏定义被自定义的变量悄悄替换了。用枚举定义的话不管你定义的顺序前后关系怎样都会产生重复定义的错误。从上面的举例来看枚举比宏好用的多。宏还有一个特性是没有作用域,这里的作用域是指宏定义以后的代码都可以使用这个宏。宏可以被重复定义这个可能导致宏的值被修改。所以建议不要用宏去定义整形的变量,用枚举或者const。又会有用const还是枚举呢,世界一向如此纠结,枚举只能表示整形,const可以修饰任何类型。整形的情况下如果你要定义几种有关系的数值那么用枚举,否则用const。

  以上就是关于枚举和宏的区别的介绍,我们知道枚举常量具有类型,但宏没有类型,枚举变量具有与普通变量相同的作用域、值等,但宏不是语言的一部分,它是一种预处理替换符

上一篇:必知的20个位运算技巧

下一篇:提高C程序效率的方法

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载