1、内联函数
- 存在的背景:函数调用存在开销(调用时候参数压栈,返回地址压栈;返回时从栈取出返回地址,跳转到返回地址。总共需要几条指令的开销)。如果函数指令较少,调用多次,函数调用的开销占比大。
- 内联函数的处理:编译器处理对内联函数的调用语句时,将整个函数代码插入到调用语句处,不会产生函数的语句。
- 使用:在函数定义前面加入inline关键字
- e.g. inline int max(int num1,int num2)
- 弊处:可能会增大可执行程序的大小
2、函数重载
- 定义:一个或多个函数,名字相同,参数个数和类型不同。(如果是名字相同,参数表相同,返回值不同,不是重载是重复定义)
- e.g. int Max(double f1,double f2) int Max(int n1,int n2) int Max(int n1,int n2,int n3)为函数的重载
- 作用:使得函数的命名简单
- 编译过程:编译器通过调用语句的实参个数和类型判断调用的函数