const与#define的区别
来源:互联网 发布:小米设置首选网络类型 编辑:程序博客网 时间:2024/04/27 08:58
const
const 是c++中的修饰符。 c++中常用来定义常量,修饰左值。
#define
宏定义语句, 在预处理阶段直接做文本替换,不做类型检查。
它们之间的最大区别:
1. 对于const 变量,系统只给了一个相应的内存地址,而#define则是给出了一个立即数。因为const变量是存放在内存的静态区域中,所以在程序运行过程中const变量只有一个拷贝,而#define 所定义的宏变量却有多个拷贝,所以宏在程序运行过程中所消耗的内存要比const变量的大得多。#define所定义的宏变量在预编译的时候进行替换,const变量在编译时确定其值。const,enum 变量进符号表,可在调试中查看变量的值.而#define不行。
2. const 对数据进行类型检查。#define 无需进行类型检查。定义宏参数时需将参数()起来。而且调用时参数不应在宏中再做运算。
3. 除了定义常量外,const 还有强大的修饰功能。#define 能增加程序的可读性,有些复杂的功能只需一条宏显示。
转自http://blog.csdn.net/zhuwanglove/article/details/5905261
0 0
- const与#define的区别
- #define与const的区别
- define与const的区别
- const与#define的区别
- const与#define的区别
- const 与 #define的区别
- const与#define的区别
- const 与 #define的区别
- const与define的区别
- const与#define的区别
- const与#define的区别
- const 与#define的区别
- const与define的区别
- const与#define的区别
- const与define的区别!!!!!
- const与#define的区别
- const与#define的区别
- #define与const的区别
- Java--猜数字
- 任何人体风格和家人发过天津房价该放就放
- Myeclipse8更换J2EE为1.6以上
- shell编程
- c# 深拷贝各种实现
- const与#define的区别
- strace命令整理
- openVswitch(OVS)源代码分析之工作流程(收发数据包)
- 二路归并的一个C++最简单实现
- 杨氏矩阵算法
- Java开发环境安装搭建
- Nconf 操作手册
- POJ 1939 Diplomatic License(求线段中点)
- quick-cocos2d-x 笔记