【摘要】:前一个为宏定义,用字符串x*x+3*x+2代替L,即L的值为x*x+3*x+2的值。
5.6.2 带参数的宏定义
带参数宏定义的一般形式为:
#define 宏名(形参表列) 字符串
带参数宏调用的一般形式为:
宏名(实数表列)
例如:
前一个为宏定义,用字符串x*x+3*x+2代替L(x),即L(x)的值为x*x+3*x+2的值。后一个为宏调用,y=L(5)的值为5*5+3*5+2。
例5.29
程序如下:
程序运行结果如下:
注意:
①宏名和形参表列之间不能有空格出现。
②形参应为变量,实参可以是常量,也可以是具体表达式。
③为了避免出错,通常用括号将宏定义中形参括起来。
例如:
情形1:#define fun(x) y*y
如果y=fun(x+1);经过宏替换后,y的值为x+1*x+1。
情形2:#define fun(x) (y)*(y)
如果y=fun(x+1);经过宏替换后,y的值为(x+1)*(x+1)。
可以看出:上面两种情况下的y 值明显不同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。