游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3071|回复: 4

inline 函数的链接错误

[复制链接]

12

主题

78

帖子

92

积分

注册会员

Rank: 2

积分
92
发表于 2010-12-9 16:29:00 | 显示全部楼层 |阅读模式
//testa.h

struct ca
{
        inline void ca1();
        int j;
};


void test_inline2();


//testa.cpp
inline void ca::ca1()
{
        int i=10;
        printf("inline test\n");
}

// !!!注释下面函数,就会链接失败
void test_inline2()
{
        ca a;
        a.ca1();
}


// main.cpp
void test_inline()
{
        ca a;
        a.ca1();
}

int _tmain(int argc, _TCHAR* argv[])
{
        test_inline();
        return 0;
}


我把inline 函数的实现放在了CPP里,注释掉上面所说的函数会链接失败,不知道为什么, 大家有没办法。

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2010-12-10 00:02:00 | 显示全部楼层

Re:inline 函数的链接错误

__inline会直接产生代码,即然__inline就应该直接把代码暴露在外面。不然不会被产生在调用处。

12

主题

78

帖子

92

积分

注册会员

Rank: 2

积分
92
 楼主| 发表于 2010-12-10 10:24:00 | 显示全部楼层

Re: inline 函数的链接错误

好像是的,看来inline是要直接写在.h文件里的。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2010-12-14 20:02:00 | 显示全部楼层

Re:inline 函数的链接错误

inline属于声明,不会被link,需要在每个(要用它的)cpp中存在

12

主题

78

帖子

92

积分

注册会员

Rank: 2

积分
92
 楼主| 发表于 2010-12-16 16:47:00 | 显示全部楼层

Re: inline 函数的链接错误

顶楼上,说得好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-17 08:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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