几个经常被举例的宏定义

宏非常频繁地用于执行简单的计算,比如在两个表达式中寻找较大(小)的一个“
#define MAX( a, b ) ( (a) > (b) ? (a) : (b) )
 
为什么不用函数来完成这个任务呢,有两点
1、首先调用和从函数返回的代码很可能比实际执行的这个小型计算工作的代码更大,所以使用宏比使用函数在程序的规模和速度上都更上一筹。
2、更为重要的是,函数的参数必须是一个特定的类型,所以说,宏是与类型无关的(即使用回调函数来处理,我们依然需要为每个不同的数据类型匹配不同的比较函数)。
 
另一个常用的宏
#define MALLOC(n, type)  ( (type *)malloc( (n) * sizeof( type ) ) )
 
 
宏的副作用 , 程序中每处调用宏的地方, 都会插入文字拷贝,所以除非宏很短,否则会大量激增代码。
 
另外 作为约定,我们将宏全部大写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值