Viusal C++.NET的优化代码(3)
{
*pj = g;
h = *pi;
}
当不使用"/GL"选项时,生成了如下代码:
sub esp, 8
lea eax, DWORD PTR _j$[esp+8]
push eax
lea ecx, DWORD PTR _i$[esp+12]
push ecx
mov DWORD PTR _i$[esp+16], 0
mov DWORD PTR _j$[esp+16], 1
mov DWORD PTR ?g@@3HA, 5
mov DWORD PTR ?h@@3HA, 6
call ?func@@YAXPAH0@Z
mov eax, DWORD PTR _i$[esp+16]
mov edx, DWORD PTR ?g@@3HA
mov ecx, DWORD PTR ?h@@3HA
add edx, eax
add ecx, eax
mov DWORD PTR ?g@@3HA, edx
mov DWORD PTR ?h@@3HA, ecx
xor eax, eax
add esp, 16
ret 0
当使用了"/GL"时,你会看到下面的代码,现在的代码短多了。注意编译这个例子时同样要注意关掉内联优化。
sub esp, 8
lea ecx, DWORD PTR _j$[esp+8]
lea edx, DWORD PTR _i$[esp+8]
mov DWORD PTR _i$[esp+8], 0
mov DWORD PTR ?g@@3HA, 5
mov DWORD PTR ?h@@3HA, 6
call ?func@@YAXPAH0@Z
mov DWORD PTR ?g@@3HA, 5
xor eax, eax
add esp, 8
- 上一篇:VC下实现定时任务的方法讨论
- 下一篇:VC++.NET中使用GDI+创建特效字体