宏函数

一 .宏的理解

1.      #define 机制包括了⼀个规定,允许把参数替换到⽂本中,宏只是实现一个简单的文本替换功能。

2.      宏的定义

#definename( parament-list ) stuff

其中neme是宏名,一般大写;( parament-list )是参数列表,注意该参数列表的左括号一定要和name紧邻着,不然会出现错误;stuff和右括号之间有一个空格,stuff是宏函数的具体实现,一般会出现参数列表里面的内容。

二 . 例题和使用注意

1.  参数加括号

写一个简单的计算平方的宏函数

#define SQUARE(x)x*x

 

此时我们在主函数中使用这个宏函数时,例如SQUARE(2);得到的结果是4,这一点显而易见。但是如果我们想得到3+2的平方,它得到的结果是不是我们想要的呢,如:SQUARE(3+2);分析一下,我们要始终注意宏函数是简单的文本替换,我们输入上述语句,得到的执行语句实际上是3+2*3+2结果是11。

使用注意:在写宏函数的具体实现时,在每个参数外加上(),这样就可以避免上述问题,#define SQUARE(x) (x)*(x),再次计算3+2的平方时是这样替换的,(3+2)*(3+2);得到的结果就是25。

2.  执行语句加括号

解决了上面的问题,我们的宏函数还是存在问题的,我在上面的基础之上再次调用一下,定义宏函数

#define SQUARE(x)(x)+(x)

 

使用宏函数,我想计算3+2的二倍之后的结果在乘以10,以我们的习惯会通过如下方式进行调用,10*SQUARE(3+2),乍一看这个结果是100,但实际是不是呢。注意宏函数时简单的文本替换,替换后的执行结果是这样的,10*(3+2)+(3+2),结果是55。

使用注意:写宏函数时,不光在参数外加括号,还注意适当的在整个执行语句外加括号。

(因时间关系,关于宏函数还有其他的注意是事项,以后再做补充)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值