我努力奔跑证明我还活着。
函数
内联函数
内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。
这样可以节省参数传递、控制传递等开销。
语法:1
2
3inline 类型说明符 函数名 (含类型说明的形参表){
函数体
}
内联函数足够的简单,足够简单的定义:
- 没有循环和switch case语句
- 不能写函数原型,要一次写出
- 内联函数内部不能有异常处理(例如:传输过程中断电,使过程不能完成)
带默认形参值的函数
函数在定义时可以预先声明默认的形参值。
注意:
- 有默认形参值的形参必须在形参列表的最后(即在有默认形参值的右边,不能出现无默认值的形参)
因为在函数调用中,实参和形参是按照从左向右的顺序建立对应关系的。 - 在相同的作用域中,不允许在同一个函数的多个声明中对同一个参数的默认值重复定义,即使前后的值相同也不行。
1
2
3
4
5
6
7
8
9int add(int x=5,int y=6);
int main(){
add();
return 0;
}
int add(int x,int y){
return x+y;
}
//int add(int x=5,int y=6){}这样不对,不能再声明了
函数重载
因为在多态那一节讲过了重载,所以就不在这里赘述了。
函数原型声明过程中的操作
1 | int f(int ,int);//可以不用形参名字 |