/*****************************************************************************                          #define | enum(enumerator)* 声明:*     今天突然在Linux内核看到枚举和宏,感觉是一样的功能,于是找了一下他们* 之间差异。**                                      2015-12-26 深圳 南山平山村 曾剑锋***************************************************************************/
一、参考文档:1. 宏和枚举的区别http://www.xuebuyuan.com/1875170.html2. 枚举enum和#define的区别http://www.programgo.com/article/7470399691/;jsessionid=FD993C1249B479189AC31D71F71FC06D3. 使用枚举和使用宏的区别http://www.programgo.com/article/11502742125/

二、总结说明:1. 宏和枚举之间的差别主要在作用的时期和存储的形式不同;2. 宏是在预处理的阶段进行替换工作的,它替换代码段的文本,程序运行的过程中宏已不存在了;3. 枚举是在程序运行之后才起作用的,枚举常量存储在数据段的静态存储区里;4. 宏占用代码段的空间,而枚举除了占用空间,还消耗CPU资源;5. 一般在编译器里,可以调试枚举变量,但是不能调试宏常量;6. 枚举可以一次定义大量相关的常量,而define一次只能定义一个;

#define | enum(enumerator)相关推荐

  1. C++ Enum转字符串

    文章目录 c switch实现 c++ map实现 c++ template实现 枚举类型定义如下 enum Color {Color_Red,Color_Blue,Color_Green,kColo ...

  2. C++入门课程系列:基础知识篇(1)

    C++是一种静态数据类型语言. • 在C++语言中,变量是计算机编程的一个重要概念,它是一个存储值的字母或名称 • 有几种基本类型的变量: string ("一组词"). char ...

  3. Protocol Buffers proto语言语法说明

    原文地址:http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/proto.html proto语言有自己的 数据类型(Field T ...

  4. 记住这些单词各种编程学习起来会很简单

    XML|DTD|RSS author ['ɔːθə(r)]  n. 作家:作者 vt. 编写:创作 channel  ['tʃænl] n. 频道:海峡 (RSS2.0 中<rss>标签下 ...

  5. windows下设备的Setup ClassGuid/Device Interface ClassGUID

    windows下与设备相关的各种guid名目繁多,MSDN上的解释也写的扑朔迷离,因此想借本文总结一下这些guid应用场景. 1.最常见的应该是Setup ClassGuid--设备安装类了.当我们打 ...

  6. C++写的一个简单的词法分析器(分析C语言)

    实验用: 几点注意: 1.代码又长又臭,时间关系,没有优化,冗余项多(我都看不下去了.囧) 2.加了一下简单的错误检测.(在mapping.h中定义了错误类型,可以查阅) 3.使用头文件宏定义来表示单 ...

  7. FFmpeg API 变更记录

    最近一两年内FFmpeg项目发展的速度很快,本来是一件好事.但是随之而来的问题就是其API(接口函数)一直在发生变动.这么一来基于旧一点版本的FFmpeg的程序的代码在最新的类库上可能就跑不通了. 例 ...

  8. Python3.5 使用 protobuf3.0.0.beta2

    上个月使用它的时候遇见一个exception: Assignment not allowed to repeated field ''"%s" in protocol messag ...

  9. ZZ:INF文件中的注册表位置,譬如HKCR、HKLM、HKR等

    ZZ:http://blog.csdn.net/weiwei22844/article/details/6088889 最近在学习驱动编程的INF文件格式时,在AddReg等directive中有很多 ...

最新文章

  1. 如何在存储过程中得到被调用存储过程的结果集
  2. mysql 改表面_MySQL_解析MySQL数据库性能优化的六大技巧,数据库表表面上存在索引和防 - phpStudy...
  3. Synchronized和Lock有什么区别
  4. Ubuntu中配置Java环境变量时,出现command not found问题解决记录
  5. NiftyNet开源平台使用
  6. java B2B2C Springcloud多租户电子商城系统-集成项目简介
  7. zip4j -- Java处理zip压缩文件
  8. 生成有时间限制的二维码_二维码竟有被用完的一天!看到截止日期后,网友:虚惊一场...
  9. elasticsearch例子(crud + 分页)
  10. 使用 WinSCP 连接到 VCSA 6.5 失败并显示以下错误:收到的 SFTP 数据包过大
  11. Reflector 3在录制中如何添加自己的声音
  12. 云视频安防监控解决方案
  13. python产品管理系统_python实现超市商品销售管理系统
  14. 软件推荐:16个你还没用过的优秀软件(多个类别)
  15. windows怎样连接到linux桌面,Windows远程桌面连接Ubuntu 14.04
  16. 用Excel分析音视频同步
  17. 【漫漫科研路\pgfplots】克服绘制色温图时,数据量大出现的内存限制
  18. Java实现手写数字的识别(BP神经网络的运用)
  19. Ebc编码与asc编码转换
  20. Dimensionality Reduction

热门文章

  1. java json帮助类_java 写一个JSON解析的工具类
  2. uva 10570——Meeting with Aliens
  3. LeetCode(合集)括号 golang
  4. html中通过定位 实现下拉,JS+CSS相对定位实现的下拉菜单
  5. Honeycomb——BFS
  6. CodeForces - 1144F搜索+简单图论
  7. MSG_PEEK标志
  8. Java架构师教你如何突破瓶颈,持续更新中
  9. w7重启计算机打印机无法使用,win7系统电脑重启打印机服务就会被关闭的解决方法...
  10. Hadoop Streaming详解