首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

头文件中const对象的定义与宏定义的差异

2013-12-05 
头文件中const对象的定义与宏定义的区别从使用的角度上这两个用法有什么区别啊?[解决办法]宏只是一个是简

头文件中const对象的定义与宏定义的区别
从使用的角度上这两个用法有什么区别啊?
[解决办法]
宏只是一个是简单替换而已!而且在预编译器就已经完成了的!
如果可以,尽量少用宏,多用const 
[解决办法]
宏定义其实是字符串替换,作用域是整个程序
const对象是有确切类型的,不是简单的名字,作用域根据具体的情况而定
[解决办法]

引用:
Quote: 引用:

宏只是一个是简单替换而已!而且在预编译器就已经完成了的!
如果可以,尽量少用宏,多用const 

为什么啊?

很多原因的,google下 ,说下我的经验
宏在预编译期就完成了替换,所以编译器无法捕捉到宏的错误!
宏只是简单替换不会作安全检查!
[解决办法]
const是有类型的,可以进行编译时类型检查。另外const在必要时是会分配内存的。
如果只针对C++编程的话,应尽量使用const,让编译器更好的理解你的意图。
[解决办法]
引用:
宏只是一个是简单替换而已!而且在预编译器就已经完成了的!
如果可以,尽量少用宏,多用const 

preprocessor=预处理器,谢谢。
[解决办法]
宏定义:简单的文本替换,使用不当会有问题
const:常量修饰符,表示不可更改,编译时会有类型检查,更加可靠。
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

宏只是一个是简单替换而已!而且在预编译器就已经完成了的!
如果可以,尽量少用宏,多用const 

为什么啊?

很多原因的,google下 ,说下我的经验
宏在预编译期就完成了替换,所以编译器无法捕捉到宏的错误!
宏只是简单替换不会作安全检查!

头文件中的const对象使用#ifndef和#endif包括起来有没有意义呢?

可以

热点排行