目录
什么是内联函数?
内联函数是C++为了提高程序运算速度所做的一项改进。
内联函数 的编译代码与其他程序的代码“内联”起来,也就是不用乱跳来跳去,编译器将使用的相应的函数代码替换函数调用。
什么时候使用内联函数?
内联函数的 运行速度比常规函数稍快,但是代价是需要更多内存。
内联函数和常规函数的区别

如何使用内联函数?
- 在函数声明前加上关键字inline
- 在函数定义前加上关键字inline
通常是省略原型,将整个定义(函数头、函数代码)放在本应提供原型的地方
注意:
将函数作为内联函数时,可能编译器不一定满足。
内联函数不能递归,所以不能自己调用自己,所以不能作为内联函数
有的编译器没有这种特性
代码示例
// inline.cpp -- using an inline function
#include <iostream>
// an inline function definition
inline double square(double x) { return x*x; }
int main()
{
using namespace std;
double a, b;
double c = 13.0;
a = square(5.0);
b = square(4.5 + 7.5);
cout << "a = " << a << ", b = " << b << endl;
cout << "c = " << c;
cout << ", c squared = " << square(c++) << "\n";
cout << "Now c = " << c << endl;
return 0;
}
运行结果:
请注意b的结果,假如是宏,那么就不可能计算正确

内联与宏有什么区别
宏是通过文本替换
比如: #define SQUARE(X) X*X
运行: b=SQUARE(4.5 + 7.5) 最后结果是 b = 4.5 + 7.5 * 4.5 +7.5 ;


本文介绍了C++中的内联函数,其目的是提高程序运行效率,通过将函数代码插入到调用处来避免函数调用的开销。内联函数与常规函数的主要区别在于编译器处理方式,使用时需在声明和定义前加`inline`关键字。然而,内联函数不能递归,且编译器可能会忽略内联请求。与宏相比,内联函数避免了文本替换带来的副作用,例如在例子中,SQUARE宏可能导致计算错误。
3629

被折叠的 条评论
为什么被折叠?



