关于预处理问题
假如我想用一个表达式去表示一年中有多少秒,我可能会用到一个预处理命令:
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365 )
可是显然60*60*24*365会造成范围溢出,这里怎样才能在预处理时将SECONDS_PER_YEAR设置成unsigned long型?
可否提供下格式?
[解决办法]
C++?
为什么不用:
const unsigned long = 60 * 60 * 24 * 365;
呢?
宏天生是一个不讲究类型,不讲究作用域的东西。
溢出还算好的,有时候整出来的事情你想都想不到。
[解决办法]
会溢出?
用ul结尾看看.
[解决办法]
象这样的常量,用const代替#define是正道。