函数
1. 什么是函数
任何一个C语言程序都是由一个或者多个程序段(小程序)构成的 每个程序段都有自己的功能 我们一般称这些程序段为"函数" 所以 可以说C语言程序是由函数构成的
2. 函数的定义
1> 定义函数的目的
将一个常用的功能封装起来 方便以后调用
2> 定义函数的步骤
a. 明确函数作用 起一个有意义的函数名
b. 明确函数的参数和返回值
3> 格式
a. 固定格式(很多语言的函数都是这么写的)
返回值类型 函数名(形式参数列表) {
函数体 //函数具体功能的实现代码
}
b. 举例
定义一个函数 计算两个整数的和
sum(int a, int b) {
int c = a + b;
}
3. 函数的参数
1> 形式参数: 定义函数时函数名后面中的参数 简称形参
2> 实际参数: 调用函数时传入的具体参数 简称实参
3> 实参个数必须等于形参个数
4> 函数体内部不能定义和形参一样的变量
5> 如果是基本数据类型作为函数参数 纯粹是值传递 修改函数内部形参的值 并不会影响外面实参的值
6> 一个函数可以没有形参 也可以有
4. 函数的返回值
1> return的作用
a. 退出函数
b. 返回一个具体值给函数调用者
2> return的注意
a. void可以省略return
b. 可以多次使用return
c. return后面不能有其他语句
3> 函数的弱语法
a. 如果没有写返回值类型 默认是int
b. 如果写了返回值 可以不返回
5. 函数注意
1> 默认情况下 C语言不允许两个函数的名称一样(就算形参列表不一样也是不行的)
2> 不能嵌套定义函数
3> 死循环调用 自己调用自己
4> 不能重复定义 可以重复声明
5> 如果有函数的声明 没有函数的定义
a. 编译可以通过 因为编译器只会检测语法合不合理 并不会检测函数有没有定义
b. 链接报错 因为链接的时候会检测函数是否定义
6> main函数的返回值: 0 正常退出, 1 异常退出
7> printf函数的返回值: 字符串常量的字符数 并不是字数(1个汉字占据3个字符)
6. .h文件和.c文件的分工
1> 单文件的坏处
一个文件的内容太多 不利于阅读 调试
多人修改同一个文件出问题
公司里面是团队合作
2> 抽取步骤总结
.c文件写函数的定义
.h文件写函数的声明
要想用我的函数 请包含我的.h文件
7. #include
1> 作用: 拷贝右边文件的所有内容到#include所在的位置
2> 自定义的文件用"" 系统自带的文件用<>