基础
- 语法
type function_name (parameter type list){
declarations
statements
}
- 函数的类型(type)就是函数的返回值类型,如果没有返回值,就使用关键字
void
. - 参数类表(parameter type list)描述了调用函数时传递给函数的参数个数和类型,如果不传递参数就用
void
. - 把函数定义中的参数称为形式参数(formal parameter),用以强调它作为占位符的角色,在调用函数时传递给函数的实际值要传递给形式参数.
函数原型
- 函数应该先声明后使用.函数声明语法使用函数原型(function prototype).函数原型告诉编译器传递给函数的参数的个数和类型以及返回值的类型.
type function_name (parameter type list);
- 参数类型表通常是用逗号分隔开的类型列表.在表中可以没有标识符,标识符不会影响原型.例如
void f(char c, int i);
等价于void f(char, int);
- 如果函数没有参数,就使用关键字
void
,如果函数没有返回值也是用关键字void
- 函数的参数个数是不确定的,name就用省略号(…)
- 函数原型可使得编译器彻底地检查代码.强制转换传递给参数的值.例如,函数声明的时候,限定传入的参数是double类型,但是传进去了一个int类型,这个int类型的参数会强制转换为double类型.
函数编写次序
- 把#include和#define放在文件头部
- 枚举类型和结构类型
- 函数原型列表
- main()函数
int max(float a,float b){
return(a>b)?a:b;
}
1. 当返回值类型和函数定义类型不一致时,以函数定义类型为准,如上例,返回浮点型,而定义为整形,则会强制转换为整形。
2. 当不需要返回值的时候,则在函数定义时用void声明
3. <font color=red>C语言中不能在函数中定义函数,既没有闭包1