#include<stdio.h>#defineCalculate_Max(A,B)A>B?A:B#defineCalculate_Min(A,B)A<B?A:B#defineCalculate(A,B,NAME)Calculate_##NAME(A,B)intmain(void){printf("%d\n",Calculate(5,8,Max));return0;}

使用宏函数或者宏函数时,注意如下几点:

  (1)宏函数的参数没有类型,预处理器只负责做形式上的替换,而不做参数类型检查,所以传参时要格外小心。

  (2)宏函数定义要注意格式,尤其是括号。