1.函数:
1.避免重复性代码
2.函数可以让程序代码模块化
3.程序始终是从main函数开始调用·1
1.函数的定义:
函数的类型 函数名(数据类型1 形式参数1,数据类型2 形式参数2)
{
return 返回值;
}
函数类型:函数运行结果的类型
in float double char void
1.函数类型如果不写,默认为int类型
2.函数如果返回值缺省,应该写void类型
3.函数类型应该与返回值的类型一致,如果不一致以函数类型为准
函数名:
1.由字母,数字和下划线构成,不能以数字开头
2.不要与c语言关键字重名
3.最好不要与c语言库函数重名
4.最好做到见名知意(动宾形式)
GetMaxNum
GetMinNum
GetAvgNum
2.函数的调用:
1.函数名(实际参数1,实际参数2, .........);
注意:
1.实参的个数和形参必须一一对应
2.实参可以是常量,变量,表达式
3.函数调用时会发生实参向形参空间的拷贝,实参将值拷贝给形参(一一对应),
3.函数的声明:
可以把声明放在开头提醒编译器有这个函数
4.变量作用域和生存周期:
1.作用域
变量的作用域只能在离定义他最近的两个大括号内
局部变量:变量作用域在某个大括号范围内
全局变量:变量作用域在整个文件中
全局变量在所有函数的外面定义
2.生存周期:
变量从中间被开辟到被回收的整个过程称为生存周期
存储类型 数据类型 变量名;
1. auto :默认存储类型
自动型变量,也叫作局部变量
将变量存放在栈区
1. 未经初始化前值为随机值
2.代码执行到变量定义时为变量开辟空间
3.超过变量作用域范围,回收变量空间
2.register
寄存器变量
1.在cpu内部的寄存器中,如果寄存器存满了,会将变量放在栈区
3.extern
外部变量
声明一个变量为外部存储的变量
4.static
静态变量
在变量存放在数据区
1.未经初始化值为0值
2.编译时开辟空间,程序运行时加载该空间
3.程序结束回收空间
static作用:
1.将变量定义为静态变量
2.可以将变量的作用域限定到本文件中
3.可以放置多个文件全局变量名冲突
静态变量和全局变量
3. 栈区:
1.用来存放局部变量 形参和返回值
2. 程序结束完后就销毁
4.数据区
1.未经初始化前值为0值
2.在编译时分配空间
3.在程序结束时,回收空间
5.递归函数:
函数定义是调用函数本身
1.递归一定要有结束条件,
2.避免深层次的递归
6.函数的传参:
1.赋值传递(复制传递)
实参将拷贝一份给形参,形参是实参的副本,形参的值发生改变不会影响实参
函数体内部想使用函数体外部变量的时候使用复制传递
2.全局变量传递
7.数组传递:
int a[5];
1.形式一:
int Fun (int array[5]);
2.形式二:
int Fun (int array[5],int len);
注意:
数组传递时,函数体内部形参操作的数组和实参操作的数组为同一数组
嵌入式 从入门到精通 第九天
于 2024-01-25 00:31:34 首次发布