inline是C++关键字,在函数声明或定义中,函数返回类型前加上关键字inline,即可以把函数指定为内联函数。
这样可以解决一些频繁调用的函数大量消耗栈空间(栈内存)的问题。
关键字inline必须与函数定义放在一起才能使函数成为内联函数,仅仅将inline放在函数声明前面不起任何作用。inline是一种“用于实现”的关键字,而不是一种“用于声明”的关键字。
内联函数与一般函数的区别
1)内联函数比一般函数在前面多一个inline修饰符。
2)内联函数是直接复制“镶嵌”到主函数中去的,就是将内联函数的代码直接放在内联函数的位置上,这与一般函数不同,主函数在调用一般函数的时候,是指令跳转到被调用函数的入口地址,执行完被调用函数后,指令再跳转回主函数上继续执行后面的代码;而由于内联函数是将函数的代码直接放在了函数的位置上,所以没有指令跳转,指令按顺序执行。
3)一般函数的代码段只有一份,放在内存中的某个位置上,当程序调用它时,指令就跳转过来;当下一次程序调用它是,指令又跳转过来;而内联函数是程序中调用几次内联函数,内联函数的代码就会复制几份放在对应的位置上
4)内联函数一般在头文件中定义,而一般函数在头文件中声明,在cpp中定义。
5)内联函数声明定义在同一个h文件,多个文件引用其头文件不会出现链接错误;而一般函数只有声明在h文件,定义在cpp文件时,多个文件引用其头文件不会出错。(全局变量需要使用extern关键字,而全局函数默认有extern关键字,不用再添加)