avatar10010 发表于 2014-10-6 11:48:58

互换两个变量值的问题

本帖最后由 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

显然方式二效率更高



大个的糖果 发表于 2014-11-1 05:41:53

页: [1]
查看完整版本: 互换两个变量值的问题