【C++】内联函数是什么?内联和宏有什么区别?
【摘要】 目录
什么是内联函数?
什么时候使用内联函数?
内联函数和常规函数的区别
如何使用内联函数?
注意:
代码示例
运行结果:
内联与宏有什么区别
什么是内联函数?
内联函数是C++为了提高程序运算速度所做的一项改进。
内联函数 的编译代码与其他程序的代码“内联”起来,也就是不用乱跳来跳去,编译器将使用的相应的函数代码替换函数调用。
什么时候使用内联函...
目录
什么是内联函数?
内联函数是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 ;
文章来源: kings.blog.csdn.net,作者:人工智能博士,版权归原作者所有,如需转载,请联系作者。
原文链接:kings.blog.csdn.net/article/details/90382544
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)