c语言inline函数,inline函数用法

另一方面,inline定义为c关键字,在函数声明或定义中,只要在函数返回类型之前加上关键字inline,就可以将函数指定为内联函数。 这样可以解决频繁调用的函数占用大量堆栈空间(堆栈内存)的问题。 关键字inline是在声明和定义函数时赋予的。 不写系统的话还是会被当作普通的函数来处理。

二、原理普通函数的调用经历了“保存现场,转入被调函数的执行,执行完毕后返回调用方,恢复现场”的一系列过程,会产生时空开销。 另一方面,由于内联函数直接将函数的代码放在了函数的位置上,所以没有指令跳转,而是按顺序执行指令。 但是,inline只适用于简单的函数,不能包含switch、while这样复杂的结构控制语句。 此外,它不能是直接递归函数(自己调用自己)。

注意: inline只是对编译器的建议

我们声明定义了内联函数。 最终取决于编译器如何决定。 如果您认为函数并不复杂,可以在调用的地方展开,则运行内联程序;如果编译器认为函数复杂,展开开销大于调用对堆栈空间的消耗,则不会内联。 此外,好的编译器会自动确定函数是否应该用作内联函数。不管是否添加inline关键字。

三.何时使用内嵌函数1 )函数本身内容少,代码短,函数功能比较简单

2 )函数被频繁调用,不如循环中的函数

错误全局函数示例: function_inline

inline void function_inline (; void function _ inline ({ STD :3360 cout _ file _ ‘ : ‘ _ line _ ‘/’ _ function _ STD 336000 } )正确的全局函数的示例

inlinevoidfunction _ inline ((STD : cout _ _ file _ ‘ : ‘ _ line _ ‘/’ _ function _ stion ) ) ) }运行结果

错误函数示例: class _ inline : function _ inline

//class _ inline.hclassclass _ inline { public : inlinevoidfunction _ inline (; (; //class _ inline.cppvoidclass _ inline 3360: function _ inline ({ STD :3360 cout _ file _ ‘ 3360 ‘ _ } )正确的成员

//class _ inline.hclass _ inline { public : inlinevoidfunction _ inline (} { STD 3360: cout _ _ file _ } } ; 四.总结

优点:消除命令的往来,加快程序的执行速度

缺点:代码被多次复制,代码量增加,消耗更多的内存空间

参考:

#C基础# inline _ _ force inline _ _ attribute _ ((always _ inline )内联函数_漳汀-CSDN博客

内联函数_renwu-CSDN博客_内联函数

内联函数(内联函数)- KLSeis -博客圈

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注