Re: [c的指標]一個簡單的小問題,有沒有比較好的解釋?
※ 引述《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
推
06/01 16:28, , 1F
06/01 16:28, 1F
→
06/01 16:28, , 2F
06/01 16:28, 2F
推
06/02 10:28, , 3F
06/02 10:28, 3F
→
06/02 10:28, , 4F
06/02 10:28, 4F
推
06/07 04:38, , 5F
06/07 04:38, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 7 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章
13
32