1,swap
方法1: #define SWAP(a, b) a ^= b; b ^= a; a ^= b;
方法2:#define swap(x, y) (x = x + y;y = x - y;x = x - y);
(错误: #define swap(x,y) temp=y;y=x;x=temp; 因为temp没有定义)
评:方法2对浮点数也适用。
注:这里可以不用括号,因为只能交换两个变量。
2,min
如果写成 #define MIN(A,B) (A <= B ? A : B) ,那么有问题——试想下面这行代码:
least = MIN(*p++, b);
所以,需要写成 #define MIN(A,B) ((A) <= (B) ? (A) : (B))
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment