
一.含义函数是一个子程序也算是一个被·包装好的代码块基本形式 ret-type full-name(函数参数)函数体使用函数的目的1.代码复用把一些重复使用的代码固定下来2.分而治之把复杂问题拆解成若干个小函数实现不同的功能。二.如果没有参数就用void这既是无参数的情况也是不用返回值的情况任务型指令三.库函数和库文件库函数放在库文件里面库函数就是已经被写好的代码可以直接使用不过要用对应的头文件进行说明。四.自定义函数例如计算两个整形变量的平均数int average(int x,int y){int z0;z(xy)/2;return z;}或者 int average(int x,int y){return (xy)/2;}void test(){}对于非void的自定义函数return 要返回一个成品int 的要返回一个整数但用void 这个的自定义函数前面不用类型而且本生就可以不用返回返回的话也可以但后面不要写任何东西五.形参和实参形参是自定义函数自身带的那个实参是真正输入的那个被调用的那个形参的实参化int average(形参)六.return语句1.return 后面可以是数值也可以是表达式不过是表达式的话就先计算表达式再返回结果。2.void后面直接写return不用加别的数没有返回值3.返回值不写类型它会默认为int4return做执行函数后代码就结束了七。函数的调用要满足先定义后调用所以一般都会先看到void后面才有调用的函数八.static和externstatic是静态的意思可以修饰局部和全局变量函数extern是用来声明外部符号的例子#includestdio.hvoid test(){ static int i0;i;printf(“%d\n”,i);}int main(){int i0;fori0;i5;i{test();}return 0;}static把int i给静止了导致它出函数的时候不会清零直接积累上次的计算打印出来就是123456如果没有static,打出来就全是1原因是局部变量执行完会删除但是变成全局变量又是另外一回事了#includestdio.hint i0;void test(){ i;printf(“%d\n”,i);}int main(){for(i0;i5;i){test();}return 0;}这样打出来也是123456不过这个原因是全局变量在静态区不随循环清零它本生就有static的作用static修饰全局变量和函数static int i0; static int test(inyx,inty)这个只能放在一个.c文件中3.extern 用于外部声明就是弄多个.c文件但是要用同一个全局变量就在这个变量前面加一个extern不过static的优先级大于extern,如果用了static 这个全局变量就只能在唯一一个.c文件中生效。对于static的总结它对应于局部函数来说它改变局部函数的生命周期但是不改变作用域全局函数来说它改变全局函数的作用域但是不改变生命周期