const常量和#define宏常量的区别
2016-03-05 21:58
381 查看
http://blog.csdn.net/lifengguo_njupt/article/details/7992332
C++可以用const定义常量,也可以使用#define来定义常量,但是前者比后者有更多的优点:
1,const常量有数据类型,而宏常量没有数据类型,编译器可以对前者进行静态类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能产生意想不到的错误(边际效应)
2,有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
所以在C++中应尽量使用const来定义符号常量,包括字符串常量。
被const修饰的东西都受到c++/c语言实现的静态类型安全机制的强制保护,可以预防意外修改,提高程序的健壮性。
C++可以用const定义常量,也可以使用#define来定义常量,但是前者比后者有更多的优点:
1,const常量有数据类型,而宏常量没有数据类型,编译器可以对前者进行静态类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能产生意想不到的错误(边际效应)
2,有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
所以在C++中应尽量使用const来定义符号常量,包括字符串常量。
被const修饰的东西都受到c++/c语言实现的静态类型安全机制的强制保护,可以预防意外修改,提高程序的健壮性。
相关文章推荐
- c语言中数组与sizeof()
- Matlab人脸检测方法(Face Parts Detection)详解
- [Regex Expression] Tagline --- {0, } {1,10}
- JAVA数据结构---单链表
- JAVA数据结构---单链表
- JAVA数据结构---单链表
- JAVA数据结构---单链表
- JAVA数据结构---单链表
- JAVA数据结构---单链表
- JAVA数据结构---单链表
- JAVA数据结构---单链表
- Linux内核分析 实验二:完成一个简单的时间片轮转多道程序内核代码
- Activity启动系统服务
- 前端学习总结(二十)那些你可能不知道却强大方便的WebStorm快捷键
- ch5优化
- 微信公众号开发总结
- 设计能力提高(交流记录)
- Xcode插件安装与管理
- 安卓初学四之控件初步(三)
- synchronized、锁、多线程同步的原理是咋样