/****************************************************************************
* #define | enum(enumerator)
* 声明:
* 今天突然在Linux内核看到枚举和宏,感觉是一样的功能,于是找了一下他们
* 之间差异。
*
* 2015-12-26 深圳 南山平山村 曾剑锋
***************************************************************************/
一、参考文档:
. 宏和枚举的区别
http://www.xuebuyuan.com/1875170.html
. 枚举enum和#define的区别
http://www.programgo.com/article/7470399691/;jsessionid=FD993C1249B479189AC31D71F71FC06D
. 使用枚举和使用宏的区别
http://www.programgo.com/article/11502742125/ 二、总结说明:
. 宏和枚举之间的差别主要在作用的时期和存储的形式不同;
. 宏是在预处理的阶段进行替换工作的,它替换代码段的文本,程序运行的过程中宏已不存在了;
. 枚举是在程序运行之后才起作用的,枚举常量存储在数据段的静态存储区里;
. 宏占用代码段的空间,而枚举除了占用空间,还消耗CPU资源;
. 一般在编译器里,可以调试枚举变量,但是不能调试宏常量;
. 枚举可以一次定义大量相关的常量,而define一次只能定义一个;

#define | enum(enumerator)的更多相关文章

  1. enum 与 #define

    enum 与 #define 一.为什么既要有enum,又要define enum is derived from enumerate, from ex- + number,字面意思就是用数字排列,报 ...

  2. #define vs. const vs enum

    In one word, using const is better than define. enum is the best. There are lots of discussions. I p ...

  3. 一篇perfect描述“神秘”inf文件的文章[转]

    INF Files for Bears of Little BrainMay 1, 2003Brian Catlin Copyright � 2003 by Brian Catlin. All rig ...

  4. C++98/11/17表达式类别

    目标 以下代码能否编译通过,能否按照期望运行?(点击展开) #include <utility> #include <type_traits> namespace cpp98 ...

  5. plain framework 商业版 开发总结2 项目管理器

    任何事情都有三个阶段,分析.制作.质检的过程.在程序中就分为设计.编码.调试(测试)三个阶段,其中设计最为重要,设计的不好会导致编码和调试重复,甚至最后又回到了设计的过程.为了不会重复返工,所以设计的 ...

  6. plain framework 商业版 开发总结1 updated

    每天对着不同的计划,多多少少有一种无形的压力.特别是对技术不好的我来说,过程中遇到的问题实在不少,时常纠结良久.时间慢慢流逝,最后虽然感觉有些不足,但是也不至于差强人意.商业版的PF核心已经升级到1. ...

  7. 一个简单的C语言语法检查器的实现

    我自己的实现方法的核心过程:首先用一个非终结符代表所有要检查的程序代码,然后根据文法将这个整体的符号不断展开,以拼凑成按检查的程序的顺序排列的终结符序列,能成功说明语法正确,否则有错误. 关键词:分词 ...

  8. 用C写的俄罗斯方块游戏 By: hoodlum1980 编程论坛

    /************************************ * Desc: 俄罗斯方块游戏 * By: hoodlum1980 * Email: jinfd@126.com * Dat ...

  9. [转载] FFmpeg API 变更记录

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

随机推荐

  1. Lucene教程--转载

    Lucene教程 1 lucene简介1.1 什么是lucene    Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来 ...

  2. POJ 1631

    #include <iostream> #define MAXN 500005 using namespace std; int T[MAXN]; int binary_search(in ...

  3. CPLD VS FPGA

    FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL.GAL.CPLD等可编程器件的基础上进一步发展的产物.它是作为专用集成电路(ASIC)领域中的 ...

  4. POJ 3177 Redundant Paths(Tarjan)

    题目链接 题意 : 一个无向连通图,最少添加几条边使其成为一个边连通分量 . 思路 :先用Tarjan缩点,缩点之后的图一定是一棵树,边连通度为1.然后找到所有叶子节点,即度数为1的节点的个数leaf ...

  5. (2)jni编程学习笔记

    先说说NDK和jni的关系吧,这两个看起来挺容易搞混的 我到网上也查了一些资料: java的jni提供了一个调用c语言函数的接口,其实就是一个java函数,这个函数没有任何内容,这个函数调用时直接进入 ...

  6. JDBC第二次学习

    脑子太笨,必须得记录下来一些文字,方便回来查询. 这是我的第二次学习JDBC的笔记,看的是传智播客——李勇老师的JDBC系列,已看到第23集. 分析在实际项目中该如何应用JDBC 一个简单用户相关的数 ...

  7. 收缩SQL数据库日志文件

    收缩SQL数据库日志文件 介绍具体的操作方法前,先说下我操作的实际环境和当时的状况.我的服务器是windows server 2008 R2 64位英文版,数据库是SQL server 2008英文版 ...

  8. C# winform post请求数据

    刚到公司混的时候,老板要求实现一个从C#的windows应用程序传参数到一个网页,然后这个网页不显示出来,但能把数据返回给应用程序的功能,问了好多人,找了好多资料,都搞不定,后来还是在老板的帮助下搞定 ...

  9. 如何查看eclipse中servlet跟jsp的版本

    打开tomcat的lib 目录下,有两个JAR文件: jsp-api.jar servlet-api.jar .如果没有,那可能是你没有添加进来.解压这两个文件,用记事本分别打开META-INF下的M ...

  10. SPRING IN ACTION 第4版笔记-第十章Hitting the database with spring and jdbc-002-本章的源代码

    0.结构 一.JDBC层 1. package spittr.db; import java.util.List; import spittr.domain.Spitter; /** * Reposi ...