论define,const,enum三者的区别
来源:互联网 发布:海康威视怎么样 知乎 编辑:程序博客网 时间:2024/05/21 17:57
1.#define宏定义 的本质是宏替换,它定义的数据没有类型。如#define MAX 10,意味着从本行宏定义开始,在后面的代码中编译器会在预处理阶段将所遇到的MAX都用10替换,这样就做到了一改全改,省时省力。然而需要注意接下来的几种情况:
- #define ERROR_POWEROFF -1
如果我们在代码里不用ERROR_POWEROFF 这个宏而用-1,尤其在函数返回错误代码的时候(往往开发一个系统需要定义很多错误代 码),所以我们见到这个-1时一定很懵逼,这个-1,我们一般称为“魔鬼数”,论谁遇到它也会发狂的。所以代码里一定不要出现“魔鬼数”。
- 不要一时手误给#define MAX 10后面加分号。则编译器会认为MAX应该用10;代替,岂不是尴尬了。
- 宏定义不开辟内存空间,不进行类型检查
- define不是C语言里的关键字。
2. const修饰的是常变量,也就是说它所修饰的是一个变量,只是这个变量只可读不可改,具有常性,比如const int max=10,在后面我们不能修 改max 的值。这里 有几点需要说明:
- const在编译时进行替换,宏定义在预处理阶段进行替换
- const 修饰的只读变量必须在定义的同时初始化
- 编译器会给const 修饰的只读变量做类型校验,而宏定义不会
3.enum
1)枚举常量是在编译的时候确定其值
2)一般在编译器里,可以调试枚举常量,但是不能调试宏常量
3)枚举可以一次定义大量相关的常量,而#define 宏一次只能定义一个
2)一般在编译器里,可以调试枚举常量,但是不能调试宏常量
3)枚举可以一次定义大量相关的常量,而#define 宏一次只能定义一个
阅读全文
0 0
- define const enum 三者的区别
- 论define,const,enum三者的区别
- enum,#define,const的区别
- #define、const、enum的用法及区别
- 区别#define、enum和const
- #define宏定义和const及enum枚举的区别
- #define,const,typedef三者联系与区别 及 static和const的解释
- 简单的一级指针 const define enum
- #define与enum的区别
- #define?const?还是enum?
- #define、const和enum
- #define、const和enum
- define const enum
- 了解#define、const、enum
- define、enum、const
- C++基础:#define宏定义和inline,const,enum的区别
- C++进阶—>const、define和enum的区别和用途
- #define,const,static三种常量的区别
- PowerDesigner连接mysql导出mysql的结构生成pdm
- Max Sum Plus Plus 动态规划
- mkdir()与mkdirs()的区别
- mongodb不能远程连接
- 前端 九九乘法表
- 论define,const,enum三者的区别
- spring context:component-scan标签实现原理
- 银联支付
- ETL学习笔记之开源项目(Kettle)
- BIMServer安装部署(一)
- 关于idea打开复制的项目文件名全红色
- Excel 录制宏
- JSON 键值为变量
- Python基本使用