码迷,mamicode.com
首页 > 其他好文 > 详细

话说宏定义

时间:2015-07-02 08:42:15      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

宏定义,普通吧?大家都知道格式是:#define  xx  xxx.

但我问你,宏定义有哪些用处,有哪些好处,那些限制?你是否都能一一回答?我当时被问,也发现认识很“肤浅”。

 

什么是宏定义?它非常的单纯:只做文本替换

 

1.用处:

1)定义常量,也就是全局立即数,这也是最常用的功能;

2)定义短小代码,能够减少重复代码,举例:#define max(a,b)  a >b? a:b.

3)定义变量别名,也常用。

4)其他

2.注意事项

1)针对1的2),对变量和宏定义整体要加括号提高优先级,否则展开可能会有错误:#define max(a,b) (a)>(b) ? (a):(b)。

2)针对1的2),对整体也有加括号,#define max(a,b) ((a)>(b) ? (a):(b)),因为涉及到展开,会跟一起参与运算符号有优先级,可能导致错误;

3)避免1中2),出现多参数运算,比如max(++i,b),展开:(++i)>(b) ? (++i):(b)。如果++i大于b则会计算两次。

参考文献《more exceptional c++》

话说宏定义

标签:

原文地址:http://www.cnblogs.com/duter/p/4615054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!