返回信息流如题
这是一条镜像帖。来源:北邮人论坛 / cpp / #84402同步于 2014/11/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
请问内联函数的inline关键字是放在声明上,还是定义上?还是哪
lfny
2014/11/26镜像同步14 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
我想知道 为什么要放在头文件中??放在源文件中不是也可以吗?
【 在 hzddm12340 的大作中提到: 】
: 放在头文件中定义比较好
: 发自「贵邮」
因为inline函数要进行替换,写在源文件里,调用的文件没有包含这个文件的话,在编译时是看不到函数体的
这好像是个undefined behavior?
A function with external linkage is declared with an inline function specifier, but is not also defined in the same translation unit.
调用的文件不是源文件还能是什么文件??定义在源文件里面,并且在源文件里面调用,不正好吗?
【 在 glazard 的大作中提到: 】
: 因为inline函数要进行替换,写在源文件里,调用的文件没有包含这个文件的话,在编译时是看不到函数体的
: 这好像是个undefined behavior?
: A function with external linkage is declared with an inline function specifier, but is not also defined in the same translation unit.
源文件可以很多的
【 在 lfny 的大作中提到: 】
: 调用的文件不是源文件还能是什么文件??定义在源文件里面,并且在源文件里面调用,不正好吗?
:
inline 函数可能要在程序中定义不止一次,只要inline 函数的定义在某个源文件中只出现一次,而且在所有源文件中,其定义必须是完全相同的。把
inline 函数的定义放在头文件中,可以确保在调用函数时所使用的定义是相同的,并且保证在调用点该函数的定义对编译器可见。
【 在 lfny 的大作中提到: 】
: 我想知道 为什么要放在头文件中??放在源文件中不是也可以吗?
: 【 在 hzddm12340 的大作中提到: 】
: : 放在头文件中定义比较好
: : 发自「贵邮」
:
:
发自「贵邮」
【 在 lfny 的大作中提到: 】
: 调用的文件不是源文件还能是什么文件??定义在源文件里面,并且在源文件里面调用,不正好吗?
:
额,我想成你说的头文件里写inline,实现在一个源文件,然后另一个文件调用这个函数了
如果你说的是声明定义都在一个源文件里,那应该没区别吧
这个网址有inline的一些解释
http://www.greenend.org.uk/rjk/tech/inline.html
这是primer书中的原话啊,我就是不懂这几句话的意思,第一个问题什么叫定义不止一次?实在不同的源文件中各自定义?普通函数不也能在各种的源文件中定义吗?第二个问题只要inline 函数的定义在某个源文件中只出现一次,而且在所有源文件中,其定义必须是完全相同的。不明白这句话的意思
【 在 hzddm12340 的大作中提到: 】
: inline 函数可能要在程序中定义不止一次,只要inline 函数的定义在某个源文件中只出现一次,而且在所有源文件中,其定义必须是完全相同的。把
: inline 函数的定义放在头文件中,可以确保在调用函数时所使用的定义是相同的,并且保证在调用点该函数的定义对编译器可见。
:
: ...................