写一个标准宏MIN,这个宏输入两个参数并返回较小的一个。
分析:
宏定义的注意两点:
1、数据类型是否有溢出的风险(如一年有多少个秒的宏);
2、带参宏的每个参数都要用括号括起来。
#define MIN(x,y) ((x) < (y) ? (x) : (y))
上面这种写法已经算很严谨的了,但不适用于以下情况:
a = MIN(++i, j); // 这个可能会让表达式产生两个副作用。
写一个标准宏MIN,这个宏输入两个参数并返回较小的一个。
分析:
宏定义的注意两点:
1、数据类型是否有溢出的风险(如一年有多少个秒的宏);
2、带参宏的每个参数都要用括号括起来。
#define MIN(x,y) ((x) < (y) ? (x) : (y))
上面这种写法已经算很严谨的了,但不适用于以下情况:
a = MIN(++i, j); // 这个可能会让表达式产生两个副作用。