1.28、规则:使用宏时,不允许参数发生变化。

2016-07-19  本文已影响93人  半升多瑙河

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

#define SQUARE( a ) ((a) * (a))int a = 5;int b;b = SQUARE( a++ ); //结果:a = 7,即执行了两次增1。 正确的用法是:

b = SQUARE( a );a++; //结果:a = 6,即只执行了一次增1。其他

上一篇下一篇

猜你喜欢

热点阅读