0

我知道使用内联函数是为了摆脱函数调用。

我看到使用内联函数是使用存储和保持堆栈更空的好方法。

到处使用内联函数是一种好的编程习惯吗?

我是这么认为的,因为当函数很复杂时,编译器没有义务将内联函数用作内联函数,那么将这个小词附加inline到每个函数中会是一个不错的方法吗?

4

2 回答 2

1

inline 只是提示编译器内联函数。编译器还可以内联优化时未标记为内联的其他函数。使每个函数内联的问题在于,整个函数需要在一个头文件中,以便可以从多个源文件中调用它。这将增加编译时间。我的建议是忘记存在 inline 关键字,直到您遇到真正的性能问题。

于 2013-10-11T13:30:25.607 回答
1

我的一般规则是在inline函数的内容小于或等于调用函数的开销时使用函数。

一个例子是gettersetter方法。

程序正常运行后,我将瓶颈部分中的一些函数转换为使用inline. 但是,这是一种微优化,通常不会像重新设计算法那样节省那么多。

正如其他人所说,内联函数会对构建过程造成严重破坏,因为头文件已更改,并且必须重新构建对头文件的所有依赖项。非内联函数只需要构建一个翻译单元。

于 2013-10-11T13:28:16.747 回答