C语言带参数的宏定义后面的字符串可以使一个符合语句么?如下图的宏定义怎么写后面的字符串?

带参数宏定义一般形式:#define 标示符(参数表) 字符串
这个题目中觉得能替换标示符的字符串就是一个max函数啊,该怎么写呢?可以复合语句把一个max函数作为真个字符串写上用于替换么?

就是说,不管怎么复杂都要弄成一个语句是吧?

--------------------------------------------------
应该是 写成一条语句 不能换行 关于 你说的闰年问题 可以写成
#define LEAP_YEAR(year) (year%4==0&&year%100!=0||year%400==0) ? printf("%d是闰年\n",year):printf("%d不是闰年\n",year)

不能分行 必须是一行
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-11
是用MAX(a,b)来替换整个语句
如我下面的程序
#include<stdio.h>
#define MAX(a,b) a>b?a:b
void main()
{
printf("%d", MAX(1,2));
}

其实就是用MAX(a,b) 替换 a>b?a:b追问

就是说,不管怎么复杂都要弄成一个语句是吧?
比如#define LEAP_YEAR(year) 要替换闰年计算怎么办呢,好像很难转化成一个语句的?
if(year%4==0&&year%100!=0||year%400==0)
printf("%d是闰年\n",year);
else
printf("%d不是闰年\n",year);

本回答被网友采纳
第2个回答  2012-07-11
#define max(a,b) ((a)>(b) ? (a):(b))
相似回答