RT
我在 vs 里面 實驗了一下
代碼如下
inline int g_fun(int i , int j)
{
//int ca = 111,jj =12,aa =1,ddd=2,ff =3,gg= 4,hh= 5,jjs = 6,kkk = 7;
return i + j;
}
int main()
{
/*int i = 10, j = 19;
int * pI = &i;*/
//int * p = new int(77);
g_fun(10, 12);
return 0;
}
按道理 應該不會生成 call 指令 進行跳轉 可是還是生成了
inline 看編譯器的臉
那我要怎么才能證明呢inline 是不會生成call 指令的呢
14: int main()
15: {
00E11800 55 push ebp
00E11801 8B EC mov ebp,esp
00E11803 81 EC C0 00 00 00 sub esp,0C0h
00E11809 53 push ebx
00E1180A 56 push esi
00E1180B 57 push edi
00E1180C 8D BD 40 FF FF FF lea edi,[ebp-0C0h]
00E11812 B9 30 00 00 00 mov ecx,30h
00E11817 B8 CC CC CC CC mov eax,0CCCCCCCCh
00E1181C F3 AB rep stos dword ptr es:[edi]
16:
17: /*int i = 10, j = 19;
18: int * pI = &i;*/
19: //int * p = new int(77);
20: g_fun(10, 12);
00E1181E 6A 0C push 0Ch
00E11820 6A 0A push 0Ah
00E11822 E8 DD F8 FF FF call g_fun (0E11104h)
00E11827 83 C4 08 add esp,8
21: return 0;
00E1182A 33 C0 xor eax,eax
22: }
00E11822 E8 DD F8 FF FF call g_fun (0E11104h)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/56479.html
標籤:基礎類
上一篇:vs2015, 求大神解決
