枚举和宏的区别详细解析

 更新时间:2013年09月23日 09:57:20   作者:  
枚举常量具有类型,但宏没有类型,枚举变量具有与普通变量相同的诸如作用域、值等性质,但宏没有,宏不是语言的一部分,它是一种预处理替换符

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

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

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

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

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

相关文章

  • C++ 哈希表的基本用法及说明

    C++ 哈希表的基本用法及说明

    这篇文章主要介绍了C++ 哈希表的基本用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • C++引用的详细解释

    C++引用的详细解释

    以下是对C++中引用的使用进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助,希望能够给你带来帮助
    2021-11-11
  • 浅谈C++中各种不同意义的new和delete的使用

    浅谈C++中各种不同意义的new和delete的使用

    本文主要介绍了浅谈C++中各种不同意义的new和delete的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • C语言示例讲解while循环语句的用法

    C语言示例讲解while循环语句的用法

    在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,C语言while语句可以是单个语句,也可以是一个语句块,其条件可以是任意表达式,true是任意非零值,当条件为真时,循环进行迭代
    2022-06-06
  • C++中引用的相关知识点小结

    C++中引用的相关知识点小结

    引用是C++一个很重要的特性,顾名思义是某一个变量或对象的别名,对引用的操作与对其所绑定的变量或对象的操作完全等价,这篇文章主要给大家总结介绍了C++中引用的相关知识点,需要的朋友可以参考下
    2022-03-03
  • C++实现分水岭算法(Watershed Algorithm)

    C++实现分水岭算法(Watershed Algorithm)

    这篇文章主要为大家详细介绍了C++实现分水岭算法Watershed Algorithm,具有一定的参考价值,感兴趣的小伙伴们可以参考一 下
    2018-01-01
  • 基于Linux系统调用--getrlimit()与setrlimit()函数的方法

    基于Linux系统调用--getrlimit()与setrlimit()函数的方法

    本篇文章是对在Linux系统中调用getrlimit()与setrlimit()函数的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 一起来学习C语言的程序环境与预处理

    一起来学习C语言的程序环境与预处理

    这篇文章主要为大家详细介绍了C语言程序环境与预处理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • C++ lambda 捕获模式与右值引用的使用

    C++ lambda 捕获模式与右值引用的使用

    这篇文章主要介绍了C++ lambda 捕获模式与右值引用的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • c++动态内存空间示例(自定义空间类型大小和空间长度)

    c++动态内存空间示例(自定义空间类型大小和空间长度)

    这篇文章主要介绍了c++动态内存空间示例,自定义空间类型大小和空间长度,需要的朋友可以参考下
    2014-04-04

最新评论