相关疑难解决方法(0)

使用内联函数有什么问题?

虽然在某些情况下使用内联函数会非常方便,

内联函数有什么缺点吗?

结论:

显然,使用内联函数没有任何问题.

但值得注意的是以下几点!

  • 过度使用内联实际上可以使程序变慢.根据函数的大小,内联它可能会导致代码大小增加或减少.内联一个非常小的访问器函数通常会减少代码大小,而内联一个非常大的函数可以大大增加代码大小.在现代处理器上,较小的代码通常由于更好地使用指令缓存而运行得更快. - Google指南

  • 随着函数大小的增加,内联函数的速度优势趋于减小.在某些时候,与函数体的执行相比,函数调用的开销变小,并且失去了好处- Source

  • 内联函数可能无法正常工作的情况很少:

    • 对于返回值的函数; 如果存在return语句.
    • 对于不返回任何值的函数; 如果存在循环,开关或goto语句.
    • 如果函数是递归的.-资源
  • __inline仅当指定optimize选项时,关键字才会使函数内联.如果指定了optimize,则是否__inline遵循优先级取决于内联优化程序选项的设置.默认情况下,只要运行优化程序,内联选项就会生效.如果指定optimize,则还必须指定noinline选项(如果要__inline忽略关键字).-资源

c++ inline-functions

36
推荐指数
3
解决办法
1万
查看次数

什么时候编译器内联C++代码?

在C++中,如果方法是显式声明inline(或在头文件中定义),或者允许编译器在他们认为合适的情况下内联方法,那么这些方法是否只有内联?

c++ compiler-construction optimization inline

18
推荐指数
3
解决办法
8487
查看次数