#define swap(x,y) {x=x+y;y=x-y;x=x-y;}//分号+{}
#define swap(x,y) (x=x+y,y=x-y,x=x-y)//逗号+()
注:if语句,会在第一个复合语句{}处结束,导致分号;被视为空语句,从而发生错误,所以在if语句后用函数式宏注意要用逗号+括号的写法。
文章讨论了在C语言中如何正确使用宏定义来实现变量交换,强调了在if语句中使用宏时,由于分号可能导致的语法问题,并推荐使用逗号运算符和括号来避免错误。
#define swap(x,y) {x=x+y;y=x-y;x=x-y;}//分号+{}
#define swap(x,y) (x=x+y,y=x-y,x=x-y)//逗号+()
注:if语句,会在第一个复合语句{}处结束,导致分号;被视为空语句,从而发生错误,所以在if语句后用函数式宏注意要用逗号+括号的写法。
716
1393
567

被折叠的 条评论
为什么被折叠?
