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