写个宏定义一年有多少秒
忽略闰年
#define S (365*24*3600)
这么写哪里错了呢
[解决办法]
#define SECS_PER_YEAR (365*24*3600)UL这种用法
表面上UL应该是指unsigned long的意思,也即SECS_PER_YEAR存储空间应该是个unsigned long类型。
整型存储不下(365*24*3600)所以用长整型.
有此种用法:#define AAA 1024UL
#define BBB 1024UL
#dfine CCC AAA * BBB * 1UL
[解决办法]
#define S (60 * 60 * 24 * 365)UL
都是推荐这样写的,
一是这个宏的可读性,
二是加上UL长整型,保证这个值不会越位溢出。
这是面试时,考的细节。
[解决办法]