【C语言应该注意的那些事】之 一 :函数式宏定义

函数式宏定义小心使用会显著提高代码的执行效率,毕竟省去了分配和释放栈帧、传参、传返回值等一系列工作,因此那些简短并且被频繁调用的函数经常用函数式宏定义来代替实现。

#define MAX(a,b) ((a)>(b)?(a):(b))

k =MAX(i&0x0f, j&0x0f)

         这就是一个简单的函数式宏定义。

        

函数式也经常写成这样:

#define device_init_wakeup(dev,val) \

       do { \

                device_can_wakeup(dev) =!!(val); \

               device_set_wakeup_enable(dev,val); \

       } while(0)

这里要特别声明一下:

上面代码中换行需要永达“\”转移字符,这与c代码中明显不同:c代码中可以直接换行。

因为这是c语言特有的特性决定的----------换行在C代码中只不过是一种空白字符,在做语法解析时所有空白字符都已经丢掉了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值