1.什么是内联函数
(1)类内定义的函数
(2)类外定义且被inline修饰过的函数
注:此时也不一定内联,只是建议编译器处理成内联。
2.内联函数与普通函数的区别?
inline内联函数:在编译过程中,没有函数调用开销,在函数的调用点直接把函数的代码进行展开处理,并且不再生成相应的函数符号。
inline只是建议编译期将其处理成内联函数,并不是所有的inline都会被编译期处理成内联函数。在debug版本上,inline是不起作用的;inline只有在release版本下才能出现。
可以打开虚拟机:g++ -c main.cpp -O2 objdump -t main.o去看一下就不会生成调用函数的指令。
3.一段代码演示内联函数的使用。
usingnamespacestd; classA{ public: voidshow() // 相当于inline void show() { cout<<"A::show()"<<endl; } }; inlinevoidshow() { } intmain() { return0; }