函数的递归调用

 

内联函数:(适用于比较短小,功能简单,经常调用的函数)。该机制将函数体的代码直接插入到函数调用处,将函数调用的方式改为顺序执行的插入的程序代码,以此来节省调用函数的时间开销。以空间(存储)换时间的方式。

inline float max(float x,float y){

  return (x>y?x:y);

}

1:除函数体内还有循环,switch和复杂嵌套的if语句外,所有的函数都可以定义为内联函数;

2:内联函数也是定义在前,调用在后,形参与实参要一一对应;

3:说明内联函数时,只是请求编译器调用时作为内联函数的扩展来实现,而不是命令;

4:内联函数时一种空间换取时间的方法,需要取舍。

 

函数重载:函数的重载和运算符的重载。(一个函数,多个入口)

同名函数,编译器根据函数实参的类型和个数来判断调用的具体函数形式。

int abs(int x){}

float abs(float x){}

double abs(double x){}

重载函数之间必须在参数的类型和个数方面有所不同,只是返回值不同的函数不是函数的重载。

 

带有默认值参数的函数

float test(float x,float y=10;float z=20){}

默认参数的声明必须出现在函数调用之前;

默认参数个数不限,单所有的默认参数必须放在参数列表的最后。