c++中的内联函数inline用法实例
问题描述:类中成员函数缺省默认是内联的,如果在类定义时就在类内给出函数定义,那当然最好。如果在类中未给出成员函数定义,而又想内联该函数的话,那在类外要加上inline,否则就认为不是内联的。内联函数的inline要加在函数前面,不可以加在声明前面。
classA { public:voidFoo(intx,inty){}//自动地成为内联函数 } //正确写法: //头文件 classA { public: voidFoo(intx,inty); } //定义文件 inlinevoidA::Foo(intx,inty){} //错误写法: inlinevoidFoo(intx,inty);//inline仅与函数声明放在一起 voidFoo(intx,inty){}
1.内联函数作用:为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。
例子:
#include//函数定义为inline即:内联函数 inlinechar*dbtest(inta){ return(i%2>0)?"奇":"偶"; } intmain() { inti=0; for(i=1;i<100;i++){ printf("i:%d奇偶性:%s/n",i,dbtest(i)); } }
内联函数是在程序编译的时候替换的方式加入程序中的。
2.内联函数使用的限制:
inline的使用是有所限制的,inline只适合涵数体内代码简单的涵数使用,不能包含复杂的结构控制语句例如while、switch,并且不能内联函数本身不能是直接递归函数(即,自己内部还调用自己的函数)。
代码较长,内部出现循环不适合使用内联函数。
3.内联函数只是一个对编译器的建议,具体实不实现看编译器认为函数复不复杂。
4.内联函数最好放在头文件中。
以上就是本次介绍的全部知识点内容,感谢大家的学习和对毛票票的支持。