这个人呐,面个试都会紧张,一紧张就忘东西。。。哎
其实究其原因在于自己对知识了解没有深入到一定程度(自己:怪我咯)。
起因
今天被问到使用C++语言中的宏来求一年的秒数。
分析问题,其实秒数很容易计算嘛-> 天数 x 小时数 x 秒数。
1小时 = 3600秒
1天 = 24小时
1年 = 闰年 ? 366 : 365 天
所以这个宏要怎么写呢?
当时想法
算了,想个简便办法,反正题目中也没什么规定,那我就写个
#define SECOND_OF_YEAR 365*24*3600
好了
仔细想想,你tm是不是个程序员啊?如果需求不清楚,那就去确定需求啊!如果需求清楚了,那你就把逻辑写完整啊!(痛骂自己一顿,切忌侥幸心理)
马后炮
那么完整的答案该怎么写呢?
#include
#define SECOND_OF_YEAR(__YEAR__) \
do { \
if (__YEAR__ % 100 != 0 && __YEAR__ % 4 == 0) { \
std::cout << 366 * 24 * 3600 << std::endl; \
} else { \
std::cout << 365 * 24 * 3600 << std::endl; \
} \
} while (false)
测试代码: