QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 615|回复: 1

inline函数在不同文件中有不同定义时。

[复制链接]
发表于 2004-5-25 13:38:36 | 显示全部楼层 |阅读模式
[code:1]//g.C
#include <iostream>
using namespace std;
inline void f()
{
    cout << "2" << endl;
}
void g()
{
    f();
}

//test_inline.C
#include <iostream>
using namespace std;
void g();

inline void f()
{
    cout << "1" << endl;
}
int main()
{
    f();
    g();
}
//g++ test_inline.C g.C 输出1 1

如果把g.C改成下面这样:
#include <iostream>
using namespace std;
void f()  //不是inline了
{
    cout << "2" << endl;
}
void g()
{
    f();
}
//g++ test_inline.C g.C 输出2 2 [/code:1]
为什么会产生这样的结果呢?这种结果是不确定的?还是有原因可寻?
发表于 2004-5-25 14:12:58 | 显示全部楼层
inline不允许多处不同的定义,如果发生这种情况,结果是未定义的(由编译器决定)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 06:45 , Processed in 0.051531 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表