内联函数 替代c语言的宏函数 是一种更安全的宏
1.内联的函数必须是非常简单的函数,不带if,for
2.inline函数只在release版本中可用,debug版本中不可用
当函数被调用的时候,会在编译时期在调用点将函数展开
没有栈帧的开辟和回退,减少了现场保护和现场恢复,节省了大量时间空间
inline 只是对编译器的建议,建议将该函数处理为内联
inline函数只在当前文件有效吗,生成的是local符号
inline不建议声明和定义分离,分离会导致链接错误。因为inline被展开, 就没有函数地址了,链接就会找不到.
如果函数的执行开销小于开栈清栈开销(函数体较小),使用inline处理效率高。
如果函数的执行开销大于开栈清栈开销,使用普通函数方式处理。
inline int fun(int a,int b)
{
return a + b;
}
int main()
{
int a = 10;
int b = 20;
fun(a, b);//等同于return a+b;
system("pause");
}