为什么a执行了两次增1?

2020-01-27 11:28发布

¹12-3:使用宏时,不允许参数发生变化。

    示例:如下用法可能导致错误。

    #define SQUARE( a ) ((a) * (a))

    int a = 5;

    int b;

    b = SQUARE( a++ ); // 结果:a = 7,即执行了两次增 1。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。