相关疑难解决方法(0)

编译器内联功能有多深?

假设我有一些函数,每个函数大约有两行简单的代码,他们互相称呼:A调用B调用C调用D...调用K.(所以基本上它是一系列短函数调用.)编译器通常会在调用树中深入内联这些函数有多深?

c++ compiler-construction inline function

14
推荐指数
2
解决办法
3117
查看次数

编译器是否决定何时内联我的函数(在C++中)?

我知道你可以使用inline关键字,或者只是将一个方法放在类声明ala short ctor或getter方法中,但编译器是否最终决定何时内联我的方法?

例如:

inline void Foo::vLongBar()
{
   //several function calls and lines of code
}
Run Code Online (Sandbox Code Playgroud)

如果编译器认为它会使我的代码效率低下,它会忽略我的内联声明吗?

作为一个副作用,如果我在我的类之外声明了一个getter方法,如下所示:

void Foo::bar() { std::cout << "baz"; }
Run Code Online (Sandbox Code Playgroud)

编译器是否会在内幕中内联这个内容?

c++ compiler-theory compiler-optimization

9
推荐指数
3
解决办法
5386
查看次数