写一个“标准宏”,这个宏输入两个参数并返回最大的一个。
1、代码
- 注意,宏中的参数 a 和 b 被包裹在括号中,这是为了避免在宏展开时可能出现的优先级问题。
- 三元运算符不能用if... else替换:在宏中使用
if-else
语句是不推荐的,因为宏是预处理指令,它们在编译前进行文本替换,而if-else
语句是控制流语句,它们需要在运行时执行。在宏中使用if-else
会导致预处理器产生错误。
#include <stdio.h>
#define MAX(a, b) ((a) > (b) ? (a) : (b))
int main() {
int x = 5;
int y = 10;
int max_value = MAX(x, y);
printf("The maximum value is: %d\n", max_value);
return 0;
}