互换两个变量值的问题
本帖最后由 avatar10010 于 2014-10-13 23:26 编辑int a=1,b=2,t;
a^=b^=a^=b; //方式一
t=a; //方式二
a=b;
b=t;
int a = 1, b = 2,t;
001F356Emov dword ptr ,1
001F3575mov dword ptr ,2
a ^= b ^= a ^= b;
001F357Cmov eax,dword ptr
001F357Fxor eax,dword ptr
001F3582mov dword ptr ,eax
001F3585mov ecx,dword ptr
001F3588xor ecx,dword ptr
001F358Bmov dword ptr ,ecx
001F358Emov edx,dword ptr
001F3591xor edx,dword ptr
001F3594mov dword ptr ,edx
t= a;
001F3597mov eax,dword ptr
001F359Amov dword ptr ,eax
a = b;
001F359Dmov eax,dword ptr
001F35A0mov dword ptr ,eax
b = t;
001F35A3mov eax,dword ptr
001F35A6mov dword ptr ,eax
显然方式二效率更高
页:
[1]