这篇文章主要介绍“什么是C++内联函数”,在日常操作中,相信很多人在什么是C++内联函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是C++内联函数”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
C 语言中有宏函数的概念。宏函数的特点是内嵌到调用代码中去,避免了函数调用的开销。但是由于宏函数的处理发生在预处理阶段,缺失了语法检测和有可能带来的语意差错。
C++提供了 inline 关键字,实现了真正的内嵌。
宏函数 VS inline函数
#include <iostream> #include <string.h> using namespace std; //优点:内嵌代码,辟免压栈与出栈的开销 //缺点: 代码替换,易使生成代码体积变大,易产生逻辑错误,无类型检查 #define SQR(x) ((x)*(x)) //优点:高度抽象,避免重复开发,类型检查 //缺点: 压栈与出栈,带来开销 inline int sqr(int x) { return (x)*(x); } int main() { int i=0; while(i<5) { printf("%d\n",SQR(i++)); printf("%d\n",i); printf("%d\n",sqr(i++)); printf("%d\n",i); } return 0; }
引入内联函数的目的是为了解决程序中函数调用的效率问题,这么说吧,程序在编译器编译的时候,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体进行替换,而对于其他的函数,都是在运行时候才被替代。这其实就是个空间代价换时间的i节省。所以内联函数一般都是1-5行的小函数。在使用内联函数时要留神:
1.在内联函数内不允许使用循环语句和开关语句;
2.内联函数的定义必须出现在内联函数第一次调用之前;
3.类结构中所在的类说明内部定义的函数是内联函数;
到此,关于“什么是C++内联函数”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。