第7章预处理命令 例7.6 #define MAX(a, b)(a>b)? a b maino Int x, y, max printf("input two numbers: ) scanf(%/od%d", &x, &y) max=MAX(x,y) printf("max=% n", max) Back
第7章 预处理命令 例7.6 #define MAX(a,b)(a>b)?a:b main() { int x , y , max; printf("input two numbers: "); scanf("%d%d",&x,&y); max=MAX(x,y); printf("max=%d\n",max); }
第7章预处理命令 上例程序的第一行进行带参宏定义,用宏名MAX表示条件表达式 (a>b)?ab,形参ab均出现在条件表达式中。程序第七行 max-MAX(xy) 为宏调用,实参xy,将代换形参a,b。宏展开后该语句为: 要2,y)xy用于计算xy中的大数。对于带参的宏定义有以下问题需 max(X> 1.带参宏定义中,宏名和形参表之间不能有空格出现。 例如把:# define max(a,b)(a>b)?ab写为:# define max(ab)(a>b)?ab将被 认为是无参宏定义,宏名MAX代表字符串(a.ba>b)?ab 宏展开时,宏调用语句:max=MAX(xy):将变为:max=a,b)(a>b)?ab(xy)这 显然是错误的。 B FLL
第7章 预处理命令 上例程序的第一行进行带参宏定义,用宏名MAX表示条件表达式 (a>b)?a:b,形参a,b均出现在条件表达式中。程序第七行max=MAX(x,y) 为宏调用,实参x,y,将代换形参a,b。宏展开后该语句为: max=(x>y)?x:y;用于计算x,y中的大数。对于带参的宏定义有以下问题需 要说明: 1. 带参宏定义中,宏名和形参表之间不能有空格出现。 例如把: #define MAX(a,b) (a>b)?a:b写为: #define MAX (a,b) (a>b)?a:b 将被 认为是无参宏定义,宏名MAX代表字符串 (a,b)(a>b)?a:b。 宏展开时,宏调用语句: max=MAX(x,y);将变为: max=(a,b)(a>b)?a:b(x,y);这 显然是错误的