日期:2014-05-20 浏览次数:20984 次
namespace test
{
    using System;
    class Program
    {
        static void Main(string[] args)
        {
            int a, b;
            a = 100;
            b = 3;
            b = a + 0 * (a = b);
            Console.WriteLine(a + "," + b);
        }
    }
}
//000011: b = a + 0 * (a = b); IL_0005: ldloc.0 IL_0006: ldloc.1 IL_0007: stloc.0 IL_0008: stloc.1
            b = a + 0 * (a = b);
0000002f  mov         eax,dword ptr [ebp-8] 
00000032  mov         dword ptr [ebp-10h],eax 
00000035  mov         eax,dword ptr [ebp-0Ch] 
00000038  mov         dword ptr [ebp-8],eax 
0000003b  mov         eax,dword ptr [ebp-10h] 
0000003e  mov         dword ptr [ebp-0Ch],eax 
int a, b; a = 100; b = 3; a^=b; b^=a; a^=b;
------解决方案--------------------
不错,但是可读性不太好。
------解决方案--------------------
 
int newa, newb;
            for (int i = 0; i < 10000000; i++)
            {
                newa = b;
                newb = a;
            }