C++ 内联函数
-
功能:
- 牺牲一定的内存空间使得相应函数调用变成相应函数代码替换以达到节约时间的目的
-
使用方法:
- 在函数声明前加上关键字 inline
- 在函数定义前加上关键字 inline
- 通常做法:省略原型,将整个定义放在本应提供原型的地方
inline funcType funcName(...) {...}
-
使用环境:
- 执行函数代码的时间相对处理函数调用机制的时间不长
- 函数经常被调用
-
注意事项:
-
inline 是 C++ 新增的特性。
- 内联函数不能递归
- 分清 C++ 内联函数和 C 宏替换的功能差异:
- 如果 C 语言的宏执行了类似函数的功能,应考虑将他们转换为 C++ 内联函数
#define SQUARE(X) X*X b=SQUARE(4.5+7.5); //is replaced by b=4.5+7.5*4.5+7.5; c=SQUARE(c++); //is replaced by c=c++*c++ inline int SQUARE(int a, int b) { return a*b; } b=SQUARE(4.5+7.5); //is equal to b=(4.5+7.5)*(4.5+7.5) d=SQUARE(c++); //is equal to d=c*c; c=c+1
- 如果 C 语言的宏执行了类似函数的功能,应考虑将他们转换为 C++ 内联函数
-