全局的"内联函数"在声明时加inline关键字还是在定义时?

fat_how 2005-10-13 04:15:06
谢谢
...全文
765 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
prove_wj 2005-10-14
  • 打赏
  • 举报
回复
定义时加;
并,保证声明与定义的一致!
cdo 2005-10-14
  • 打赏
  • 举报
回复
当然是在定义时呀。
北极猩猩 2005-10-14
  • 打赏
  • 举报
回复
内连函数的定义只在包含它的原文件中有效。
所以对于内连函数,声明就是定义,定义就要声明。

而且在不同的CPP文件中相同名称的内连函数,事实上是不同的函数
power77 2005-10-14
  • 打赏
  • 举报
回复
inline function can have multiple identical definitions!
SammyLan 2005-10-13
  • 打赏
  • 举报
回复
看清楚再回答
(=_=)

多于一个cpp文件,而且多个cpp文件用到此内联函数
内联必须放到头文件实现
(=_=)
power77 2005-10-13
  • 打赏
  • 举报
回复
不好意思,没看清楚标题。

全局的哈,呵呵,不是类成员函数。

最好在一个头文件中定义,并加上inline。

如果在cpp中,则必须在每个引用了这个全局函数的文件中都要定义一次,才能保证尽量让编译器inline这个函数。CPL中明确说了这点的哈。
An inline function must be defined - by identical definitions - in every translation unit in which it is used!
power77 2005-10-13
  • 打赏
  • 举报
回复
谁说的都要加?

cpp primer里面写了
如果declaration加了,definition就不需要了。
反正二者之一加一个都行了,都加也不错。

最好定义在头文件中。不过定义在cpp中也没有错误。
jixingzhong 2005-10-13
  • 打赏
  • 举报
回复
定义和声明的时候都要加的 !!

inline 函数很特殊, 楼主要小心啊 哈哈.
一般, 最好的是把定义放在 头文件 中!!因为inline函数是要被展开的, 和普通的函数不一样, 它在程序编译以后就没有函数在了, 所以, 要在所有用到 inline函数的 文件中定义这个函数, 为了省力气, 当然是在头文件中定义, 然后包含一下就好了 ...
archim 2005-10-13
  • 打赏
  • 举报
回复
inline函数放在cpp文件里是不能被其它的文件使用的。感觉好像相当于被static修饰了。
note_code 2005-10-13
  • 打赏
  • 举报
回复
定义时加
qfeng_zhao 2005-10-13
  • 打赏
  • 举报
回复
很多问题不懂就上机
xupingle 2005-10-13
  • 打赏
  • 举报
回复
同意 russilong()
v41dugu 2005-10-13
  • 打赏
  • 举报
回复
呵呵 你自己试试就知道了。。。。有任何一个不加就要报错哟~~
有的问题自己多试试就知道结果了~~~
楼主加油!!!
russilong 2005-10-13
  • 打赏
  • 举报
回复
单在声明时加是没用的,定义是必须要加。但往往声明与定义在一起,放在头文件中。

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧