首页 百科知识 带参数的宏定义

带参数的宏定义

时间:2022-09-22 百科知识 版权反馈
【摘要】:前一个为宏定义,用字符串x*x+3*x+2代替L,即L的值为x*x+3*x+2的值。

5.6.2 带参数的宏定义

带参数宏定义的一般形式为:

#define 宏名(形参表列) 字符串

带参数宏调用的一般形式为:

宏名(实数表列)

例如:

img313

前一个为宏定义,用字符串x*x+3*x+2代替L(x),即L(x)的值为x*x+3*x+2的值。后一个为宏调用,y=L(5)的值为5*5+3*5+2。

例5.29

程序如下:

img314

程序运行结果如下:

img315

注意:

①宏名和形参表列之间不能有空格出现。

②形参应为变量,实参可以是常量,也可以是具体表达式。

③为了避免出错,通常用括号将宏定义中形参括起来。

例如:

情形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 值明显不同。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈