看板 Programming 關於我們 聯絡資訊
※ 引述《IsfunHDS (Isfun)》之銘言: : void swap(int &x,int &y) : { : x=x^y; : y=x^y; : x=x^y; : } : 這個是用call by ref : 不過是用位元運算 速度比較快 看情況 似乎並沒有比較快 196672 131139 swap看起來就需要3cycles swap2只需要2cycles -- #include <stdio.h> __int64 rdtsc() { __asm rdtsc } __inline void swap(int &x,int &y) { x=x^y; y=x^y; x=x^y; } __inline void swap2(int &x,int &y) { int z; z=x; x=y; y=z; } void main() { __int64 a; int b,c,d; b=1; c=2; d=65536; a=rdtsc(); while(d--) swap(b,c); a=rdtsc()-a; printf("%ld\n",a); d=65536; a=rdtsc(); while(d--) swap2(b,c); a=rdtsc()-a; printf("%ld\n",a); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.59.154.31
jtmh:推,另補上 C FAQ 上相關的說明:218.175.148.121 06/01 16:28
jtmh:http://c-faq.com/misc/swapnotemp.html218.175.148.121 06/01 16:28
legnaleurc:沒錯...我很久之前的測試結果140.123.104.223 06/02 10:28
legnaleurc:也是沒比較快140.123.104.223 06/02 10:28
pthuang:有人可以幫忙翻譯二樓的嗎?好想看懂.... 59.117.198.44 06/07 04:38