关于C++ inline关键字
inline,内联,早期inline关键字是给编译器的内联建议,编译器会视情况将函数在调用处展开。
但是现在没有编译器会听从用户的建议。
inline的新语义,如果在不同文件中发现相同的inline函数,只保留一份
inline的用法
- inline函数的声明和定义必须在同一个文件,通常是将inline函数的声明和定义都放到头文件里,否则就只能在每个实现文件里都定义一个相同的inline函数。
- 在类中定义的函数默认是内联的,如果想把一个类外定义的函数定义为内联的,必须显式指定inline
- inline只能放在函数定义里,不能放在函数声明里。
还有个类似的关键字register,register在c中的作用是告诉编译器将一个变量放在寄存器中,c++中的register没用,完全是为了兼容c程序而存在的。