2
Visual Studio的產生當使用_InterlockedIncrement
以下的機器代碼:_InterlockedIncrement內在實施
; 40 : _InterlockedIncrement(&framecounter);
00078 b8 00 00 00 00 mov eax, OFFSET [email protected]@3JA ; framecounter
0007d b9 01 00 00 00 mov ecx, 1
00082 f0 0f c1 08 lock xadd DWORD PTR [eax], ecx
如果我會寫這個,我會使用的只是lock inc DWORD PTR [eax]
代替mov
和xadd
是否有正當的理由爲什麼微軟首選xadd
並使用2條指令而不是1?
你是對的......現在,在我已經寫入了更多的代碼之後,當我將「framecounter」與其他東西進行比較時,我對我的inc有了一種令人毛骨悚然的感覺:) – Jaka 2012-07-09 09:45:38