|
3鱼币
本帖最后由 风之残月 于 2014-11-9 22:37 编辑
- inline int func(int a){ return ++a; }
- #include <iostream>
- int main()
- {
- func(3);
- }
- 对应汇编代码:
- #include <iostream>
- int main()
- {
- 011C52F0 push ebp
- 011C52F1 mov ebp,esp
- 011C52F3 sub esp,0C0h
- 011C52F9 push ebx
- 011C52FA push esi
- 011C52FB push edi
- 011C52FC lea edi,[ebp-0C0h]
- 011C5302 mov ecx,30h
- 011C5307 mov eax,0CCCCCCCCh
- 011C530C rep stos dword ptr es:[edi]
- func(3);
- 011C530E push 3
- 011C5310 call func (011C1299h)
- 011C5315 add esp,4
- }
复制代码 将func定义成inline后,为什么在调用func时还是将它按照一般函数调用格式进行调用?
|
最佳答案
查看完整内容
VC中inline必须在release模式下I才可能有效,debug下inline函数都作为普通函数
|