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

对于一些惯用数值,大家喜欢用宏来表示还是用常量

2012-10-30 
对于一些常用数值,大家喜欢用宏来表示还是用常量?C/C++ code#define PIE 3.1415926//还是const fload Pie

对于一些常用数值,大家喜欢用宏来表示还是用常量?

C/C++ code
#define PIE 3.1415926//还是const fload Pie 3.1415926



我在effective c++上建议我使用const,但是我认为,如果仅仅是对一个简单的数值,而不是表达式,用#define没有什么不好的,而且还能减少开销,这是何乐而不为呢?相反,我真的看不出这里使用const的好处。

[解决办法]
以前的帖子http://topic.csdn.net/u/20090724/11/e1794f6f-9c01-4ec5-8ade-3b5be268bdcd.html
我大多还是用const~
[解决办法]
探讨

还有如果出错是时,#define的错误信息会是3.1415926而不是PIE,令人费解

[解决办法]
const fload Pie 3.1415926
习惯些

平时 很少用用#define 自己的习惯 ..
[解决办法]
用const也不见得有额外的开销。
据说只有当你引用了const变量的地址,才会真实地产生这样一个地址,否则会被优化掉。所以应当是没有额外的运行时开销的。
[解决办法]
define只是简单的字符串替换 不带安全检查
const 相对来说比较好吧 
至于用那个 用的地方不一样啊
[解决办法]
const C++的风格。
[解决办法]
要写那么多const val_type val_name=val
烦都烦死了,还是用宏把,而且某些坑爹的函数也可以用,
[解决办法]
1. 
 
C/C++ code
#define PI 3.14 //调试的时候不方便
[解决办法]
探讨

引用:

用const也不见得有额外的开销。
据说只有当你引用了const变量的地址,才会真实地产生这样一个地址,否则会被优化掉。所以应当是没有额外的运行时开销的。

是这样吗,那一个数值被引用的话,也会不会在常量区产生一个地址?
比如
int a=1212121
我想应该不会吧。这里只会在栈中给a分配内存

#define A 1212121
int ……

热点排行