A部分学习函数中的全局变量和部分变量
B部分学习函数 函数的嵌套和函数的递归(一般不推荐递归)
A部分的学习:
全局变量和局部变量的作用域不同
通常采用 局部变量+传参的方式 YYDS!
全局变量,头文件下面就定义的变量,所有的函数都可以操作并修改,具有潜在的危险,即多线程操作内容,导致危险的发生。
局部变量,作用域范围较小,仅被位于局部变量下的函数调用。
函数返回值只能返回一个值,但想实现理论上的多个返回值可采取以下的方式:
1.直接法返回多个数值里的一个到main函数中
函数返回值 返回一个
2.间接法返回多个数值里的另一个main函数中
通过全局变量的方式。第一步,即在被调函数中操作 全局变量 得到想要的结果。第二步,在main函数值得到返回值的同时也同样的显示内容/结果
#include <stdio.h>
int max;……………………………………………全局变量
int arr [3] ={1,7,3};
floalt Average(int arr[ ] ,int len)
{ int sum=0;
for遍历数组相加得到sum for遍历数组比较得到max
此时该函数中有两个数值sum/len和max需要返回,但函数返回值只能是一个,另一个则采用全局变量的方式,间接返回main函数
return sum/len
}
main()
{
result =Average(arr[] , len);
printf("数组中数据的平均值是%lf,最大的数 据是%d",result,max);
}
B部分的学习
函数的嵌套,即层层深入,不断调用不同的函数。不断的调用下一个函数,第一个函数里调用第二个函数,第二个里在调用所需的第三个函数,
函数的递归,不断调用相同的函数,直到满足递归停止的条件(核心存在if…else语句)
GetAge(num){
if (num==1){
age = 10;
}else{
age=GetAge[num-1]+2;
}
return age;
}
main (){
int result;
result = GetAge(num);
}
函数的嵌套
WIFIGOT函数中需要调用UartTime0函数,
UartTime0函数中又会调用Delay50us()函数