C语言预处理宏命令

1.宏

1.1不带参数的宏:

形式:#denfine 用户标识符 字符串

(1)#define 用户标识符 字符串

eg:#define x 5

(2)#define 用户标识符 表达式

eg:#define x 3*y-1

(3)#define 用户标识符 字符串

eg:#define p printf

则p()为printf()函数,可调用p()输出信息

注:1.宏定义不是语句,不需要在后面加分号,如果有分号,表示宏名替换时包括后面的分号。

       2.宏定义可以层叠定义:eg:#define PI 3.1415

       #define S PI*r*r

1.2带参数的宏

定义:#define 宏名 字符串

eg:#define S(x,y) x*y

注:1.带参数的宏的使用方式与带参数的函数类似,调用时需要相应的参数,否则会出错。

2.带参数的宏定义编译之后只是用#define命令中的形参来替换的。

eg:#define L(x,y) sqrt(x*x+y*y)

z=L(x,y)改为z=L(x+1,y+1),这时替换后z=sqrt(x+1*x+1+y+1*y+1),要想得到正确结果则x,y应加上括号,如下所示:

#define L(x,y) sqrt((x)*(x)+(y)*(y))

3.带参数的宏定义名与参数之间不能有空格

eg:#define L (x,y) sqrt(x*x+y*y)

编译不会出错,但运行结果会出错。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值