Now in Baidu WISE team
全部博文(150)
分类: C/C++
2012-12-26 15:27:09
runningdark2013-05-03 14:12:12
txgc_wm:靠,竟然是乱码!
就是改用do{(a)^=(b); (b)^=(a); (a)^=(b);} while(0)的方式
额,明了。多谢指点。
回复 | 举报txgc_wm2013-05-03 00:11:47
runningdark:乱码无显示啊。 写到一行里看下。thx
靠,竟然是乱码!
就是改用do{(a)^=(b); (b)^=(a); (a)^=(b);} while(0)的方式
runningdark2013-05-02 23:46:54
txgc_wm:楼主,你那样写也不是好的方法,将程序展开来看还是很怪异(尽管它不会出错)。
按照人们正常的语法来写会是这样:
if(a>b)
SWAP(a,b);
展开后是这样:
if(a>b)
{
if(a!=b)
{
(a)^=(b); (b)^=(a); (a)^=(b);
}
};
最后面的那个分号是否会很怪呢?
建议以这种格式写:
#define swap(a,b) \
do{&n
乱码无显示啊。 写到一行里看下。thx
回复 | 举报txgc_wm2013-05-02 19:46:29
runningdark:囧嘞~ 恩,这个当时是出过错,弄了好久。最终写法是 #define swap(a,b) {if(a!=b){(a)^=(b); (b)^=(a); (a)^=(b);}}。 移步 http://blog.chinaunix.net/uid-26456800-id-3442434.html 之前为了这个问题专门写了个。 写这篇的时候偷懒了。改掉。
楼主,你那样写也不是好的方法,将程序展开来看还是很怪异(尽管它不会出错)。
按照人们正常的语法来写会是这样:
if(a>b)
SWAP(a,b);
展开后是这样:
if(a>b)
{
if(a!=b)
{
(a)^=(b); (b)^=(a); (a)^=(b);
}
};
最后面的那个分号是否会很怪呢?
建议以这种格式写:
#define swap(a,b) \
do{&n
runningdark2013-05-02 17:37:13
txgc_wm:按照你上面那样写,例如
if(a>b)
SWAP(a,b)
一方面,它显示的不友好;另一方面,它是错误的。
囧嘞~ 恩,这个当时是出过错,弄了好久。最终写法是 #define swap(a,b) {if(a!=b){(a)^=(b); (b)^=(a); (a)^=(b);}}。 移步 http://blog.chinaunix.net/uid-26456800-id-3442434.html 之前为了这个问题专门写了个。 写这篇的时候偷懒了。改掉。
回复 | 举报