首页
社区
课程
招聘
[旧帖] [讨论]关于C++ 内联函数的编译问题 0.00雪花
发表于: 2008-4-6 21:53 3002

[旧帖] [讨论]关于C++ 内联函数的编译问题 0.00雪花

2008-4-6 21:53
3002
编译环境 VC6 DEBUG

#include <iostream>
#include <string>
using namespace std;// No.1

inline string dbtest(int a);//定义内联函数

void main()
{
        for (int i=1;i<=10;i++)
        {
                cout << i << ":" << dbtest(i) << endl;
        }
        cin.get();
       
}

string dbtest(int a)
{
        return (a%2>0)?"y":"n";
}

为什么编译后的代码是这样的。
00401915   push        offset @ILT+240(std::endl) (004010f5)
0040191A   mov         ecx,dword ptr [ebp-10h]
0040191D   push        ecx
0040191E   lea         edx,[ebp-20h]
00401921   push        edx
00401922   call        @ILT+660(dbtest) (00401299)
00401927   add         esp,8

为什么不是直接把函数的主体部分的代码嵌入?难道是编译器的问题?
还是?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
用OD试一下,VC自带的不好用,
2008-4-6 22:02
0
雪    币: 220
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
Release,然后OD看一下
2008-4-6 22:21
0
游客
登录 | 注册 方可回帖
返回
//