读书笔记:Effective C++ 2.0 版,条款33(inline)

条款33: 明智地使用内联
合适的内联可以减少函数调用开销,减少内存换页。
inline指令就象register,它只是对编译器的一种提示,而不是命令。
过度inline会导致代码膨胀,也可能会导致不合理的页面调度行为(系统颠簸),使得程序反而变慢。
大多数编译器都可以设置诊断级,当声明为内联的函数实际上没有被内联时,编译器就会为你发出警告信息(参见条款48)。
想对程序库中的内联函数进行二进制代码升级是不可能的。换句话说,如果f是库中的一个内联函数,用户会将f的函数体编译到自己的程序中。如果程序库的设计者后来要修改f,所有使用f的用户程序必须重新编译。
内联函数中的静态对象常常表现出违反直觉的行为。所以,如果函数中包含静态对象,通常要避免将它声明为内联函数。
大多数调试器遇上内联函数都会无能为力。
inline那些调用次数、调用成本较高的函数。

你可能感兴趣的:(cpp,c++)