第六章-函数
C语言中函数的注意事项
- 默认情况下,不允许有函数的名称一样,即使有不同的参数
- 函数不允许嵌套定义
- 函数不能重复定义,但是可以重复声明,函数声明可以写在任何地方.
- 如果有函数的声明,没有函数的定义:
- 编译不会报错,编译只会检测语法合不合理,并不会监测函数有没有定义
- 连接不会报错,因为连接的时候会检测函数有没有定义
函数的递归
-
C语言特点之一就是允许函数的递归调用
由图可见:程序中不应该出现这种无终止的递归调用,而只应出现有限次数的/有终止的递归调用,这可以用if语句来控制,只有在某一条件成立事,才继续执行递归调用,否则就不在继续.
-
代码举例
//编写 n! 函数
int fac(int n){
int f;
if(n<0)
printf("n<0,data error!");
else if(n == 0 || n== 1)
f = 1;
else
f = fac(n-1)*n;
return f;
}
函数的声明样式
- 有两种:
- 函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2,…);
- 函数类型 函数名(参数类型1,参数类型2,…);
- 在函数声明中的形参名可以省略不写,因为编译系统只关心和检查参数的个数和参数的类型,而不检查参数名,因为在调用函数时只要保证实参类型与形参类型一致即可