#include<stdio.h>
#include<math.h>
#define charck(a,b) (((a)-(b))==fabs((a)-(b)))?printf("a>b"):printf("a<b")
int main(void)
{
int a,b;
scanf("%d %d",&a,&b);
charck(a,b);
}
特别注意:上面的宏定义每个变量都要加小括号,因为宏定义在预编译即预处理时只是进行简单的替换,举例如下:
#define a(x,y) x+y
x=2+1;
y=4+5;
本来你用a(x,y)想要的结果是: (2+1)*(4+5) 为27
而实际在预编译即预处理时只是进行简单的替换,结果为:
2+1*4+5 为11