关注C++细节--宏展开出错

当我们在分析有关宏定义的问题时,最简单的办法就是先把宏的内容进行替代,然后在进行分析。

如:#define sqr(x)  x+x

       #define fun(x)  x*x

则分析如下表达式的结果

sqr(3)            //第一个很简单就是x+x即3+3=6

fun(3+3)       //第二个先用宏替代则为 3+3*3+3则为15

!sqr(3)          //第三个用宏代替为 !3+3=0+3=3  所以结果为3

你可能感兴趣的:(关注C++细节--宏展开出错)