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



被折叠的 条评论
为什么被折叠?



