假如我想用一个表达式去表示一年中有多少秒,我可能会用到一个预处理命令:#define SECONDS_PER_YEAR (60 * 60 * 24 * 365 )可是显然60*60*24*365会造成范围溢出,这里怎样才能在预处理时将SECONDS_PER_YEAR设置成unsigned long型?可否提供下格式?谢谢
为什么不用:const unsigned long SECONDS_PER_YEAR = 60 * 60 * 24 * 365;呢?
宏天生是一个不讲究类型,不讲究作用域的东西。溢出还算好的,有时候整出来的事情你想都想不到。