C++ inline

本文介绍了如何解决LNK2019错误的方法,通过调整inline函数的声明和实现位置来避免链接器错误。详细说明了inline函数的正确使用方式。

刚才遇到LNK2019错误,检查半天,什么obj文件的链接顺序啊,LIB文件的路径啊,都没有解决问题

仔细看了一下报错的内容,发现涉及到我写的一个inline函数

然后上网搜了一下关于inline的具体用法,摘自http://www.cnblogs.com/berry/articles/1582702.html

建议把inline函数的定义放到头文件中。在每个调用该inline函数的文件中包含该头文件。这种方法保证对每个inline函数只有一个定义

关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用

而我是这样做的:

在头文件A.h中写上了声明:void func();

在文件A.cpp中写的实现:inline void func() { ... }

很明显问题在哪里了:应该把inline函数的声明和实现都放到A.h中。

建议的做法是:在A.h中,按如下格式书写。虽然写法比较啰嗦,但是这样强调了inline关键字是“实现细节”,是不需要customer programmer关心的,所以inline不用写在函数声明中。

void func();

inline void func()

{

     ...

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值