#define | enum(enumerator)

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

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

 

目录
相关文章
|
编译器 C++
typedef vs #define
typedef vs #define。
34 0
|
机器学习/深度学习
C中define的#和##
C中define的#和##
80 0
Enum
Enum
114 0
#define 以及##
#define 以及##
118 0
|
编译器 C++
尽量以const、enum、inline替换#define
尽量以const、enum、inline替换#define
193 0
尽量以const、enum、inline替换#define
|
C语言
define需要注意的点
define需要注意的点
171 0
define需要注意的点
|
程序员 网络安全 C++
C/C++ enum使用
C/C++ enum使用
225 0
#define a int[10]与 typedef int a[10]用法
// #define a int[10] #include #include #define a int[10] int main() { int *p=(int *)malloc(sizeof(a)); p[0]=1; printf("%d\n",p[0]);...
1760 0
#define与typedef区别
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如: #define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#define语句中的数字9 写成字母g 预处理也照样带入。
981 0
|
安全 C# 存储

热门文章

最新文章