- 内联函数
函数调用有时间开销,特别是函数本身语句少但多次被调用,为减少调用开销引入内联函数
编译器处理内联函数时,将内敛函数的语句插入到调用语句处而不产生具体调用
加 inline 关键字
inline int max(){
if(a>b) return a;
return b;
}
弊端:可执行程序的体积变大
- 函数重载
一个或多个函数名字和返回类型相同,但参数类型和个数不同
编译器根据调用语句中的实参个数类型判断是哪个函数
int max(int a, int b){}
int max(double a, double b, int c){}
int max(int a, int b, double c){}
函数重载二义性
max(3.4,3.6,3.8) //不知道是第二个还是第三个max
如果名字和参数表完全相同,返回类型不同,叫做函数重定义
- 函数的缺省
int func(int a; int b=1; int c=20); //则第一个参数必须写,后两个可缺省
必须是函数最右边的若干个参数才能设置为缺省值,以上述为例,当b缺省时,c必须也缺省;当c缺省时,b可以不缺省
函数的缺省可提高程序的可扩充性