首页 > C > 阅读:57,774

宏替换

< 上一页 宏定义 宏应用 下一页 >

我们知道,宏在编译前预处理阶段,就已经完成了替换,而且替换是一个简单的替换,对宏的参数不会做任何的计算。比如定义一个求2个数中最大值的宏:

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

那么把下面的宏展开:

MAX(1+2,value)则会把它替换成:

((1+2)>(value)?(1+2):(value))

不要错误的认为:

MAX(1+2,value),会先计算1+23,即MAX(1+2,value)àMAX(3,value)。这是不对的。宏不像函数,不会计算1+2,而是直接用1+2去替换表达式中的a

< 上一页 宏定义 宏应用 下一页 >

周哥教IT,分享编程知识,提高编程技能,程序员的充电站。跟着周哥一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

当你决定关注「周哥教IT」,你已然超越了90%的程序员!

IT黄埔-周哥教IT技术交流QQ群:213774841,期待您的加入!

二维码
微信扫描二维码关注