使用内联函数的时候,编译器并不是直接调用函数而是展开内联函数的代码并将其插入到程序代码中。
- 提高程序运行效率。(内联函数的代码是被展开,而不是被调用)
- 编译器不会为包含选择/循环/递归的函数产生代码。(不支持switch,while 等)
- 内联函数不允许含有static类型的变量
创建内联函数:
方法一: 使用 inline 修饰符
class myclass{ int i; public: int get_i(); void put_i(int k); }; inline int myclass::get_i(){ return i; } inline void myclass::put_i(int k){ i=k; } int main(){ myclass c1; c1.put_i(18); cout<<c1.get_i(); return 0; }
方法二:类中创建内联函数。
- 将成员函数的代码定义在类的声明中,定义在类的声明中的函数自动成为内联函数。(不需要关键字inline)
class myclass{ int i; public: //内联函数 int get_i(){ reutrn i; } void put_i(int k){ i=k; } }; int main(){ myclass c1; c1.put_i(18); cout<<c1.get_i(); return 0; }