cpp内联函数
作者:互联网
目录
内联函数引入
- C中对于一些频繁计算的短代码,通常写成宏来避免函数调用开销,但是再C++中会带来一个问题,即:
- 预处理器不能访问类的成员,因此宏不能作为类的成员函数。
- c++中内联函数就用用来解决宏函数的缺陷。
C++用inline关键字来解决宏函数缺陷的问题
- 无论是在内联函数还是定义时都要加上inline关键字
- inline关键字本质其实跟宏函数一样,即在函数调用的地方直接将函数体复制过去,从而省去函数调用的开销,这是一种空间换时间的思想。
- 不同之处在于宏是在预处理阶段处理的,而inline内联函数是在编译阶段处理的。
- C++类中的方法默认都是inline的。
inline是一种建议
- 内联仅仅是给编译器的一种建议,编译器不一定接受这种建议,即将函数声明为inline,最终不一定能内联,而即便不声明,最终也有可能会inline。
- 某些情况下编译器不会将函数变成inline的,可以分两种情况,一种是函数体不能太过复杂,比如有很多循环语句,一种是不能对函数取地址,如果取了地址,那么该函数不会被内联。
- 总而言之,言而总之,知道这个概念就行。
标签:函数,C++,关键字,编译器,inline,cpp,内联 来源: https://www.cnblogs.com/chkplusplus/p/16399830.html