今天看嵌入式的一些知识的时候,看到有人出人考题是:
请定义一年有多少秒。
然后认为最好的答案是:
#define SECONDS_PER_YEAR (60*60*24*365)UL
这里,预处理宏定义会给你计算好值,你自己就不用计算了。考这个思路。
第二,这里还考虑到了嵌入式微控制器,一般微控制器都是16位及以下的,而且宏定义一般默认是整型。如果直接这么定义的话会溢出的。
在C语言宏定义里,可以使用UL,标记该宏 unsigned long 。所以这里考虑的非常周到。厉害!
此时,如果想要输出这个宏的话,必须
printf("%ld \r\n", SECONDS_PER_YEAR);
也可以这么定义:
#define SECONDS_PER_YEAR (60UL*60*24*365)