首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内联函数中的内联函数

内联函数中的内联函数
EN

Stack Overflow用户
提问于 2015-09-30 20:44:42
回答 4查看 203关注 0票数 3

用于下列职能:

代码语言:javascript
复制
inline void A() {
   ...
   B();
   ...
}

B也被编译器内联了吗?

如果没有,我应该让B内联以提高性能吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-09-30 20:56:02

不,内联关键字只会导致A代码在调用方代码中内联。这不会影响B的内衬。

此外,在c++中,内联关键字只是编译器的提示,编译器可以忽略它。现代编译器决定函数何时需要内联,即使不使用关键字。

票数 5
EN

Stack Overflow用户

发布于 2015-09-30 20:46:18

在大多数情况下,您可以轻松地将内联决策留给编译器,编译器将比您更清楚地知道什么时候和什么时候它将带来更好的性能。

在这种特定的情况下,我认为完全取决于编译器该做什么。

票数 6
EN

Stack Overflow用户

发布于 2015-09-30 21:09:05

然而,所有的评论者都没有提到,在某些情况下,内联并不仅仅是对编译器的提示,而是一个强制的关键字。当将函数的非模板定义放在由多个.cpp文件包含的头文件中时,就会发生这种情况。在这种情况下,没有内联将触发链接器错误。事实上,这是唯一的情况,一个人甚至应该费心键入这6个字符。在其他情况下,编译器将内联他们所能做的一切-不管这个关键字的存在。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32875295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档