|
发表于 2005-4-23 17:55:33
|
显示全部楼层
第一道题正确的应该是:
#define YEAR_SECONDS (365L * 24L * 60L * 60L)
因为:
1. ISO C 标准规定 long 不能小于 4 bytes, int 不能小于 2 bytes
2.
#define YEAR_SECONDS (long)(365 * 24 * 60 * 60) 或者
#define YEAR_SECONDS (365 * 24 * 60 * 60L)
都是不正确的,因为在 16 bits 的机器上,int 很可能是 2 bytes, 以上两种方法在做乘法运算时都会溢出。 |
|