李洪强-C语言5-函数
C语言函数
一、函数
C语言程序是由函数构成的,每个函数负责完成一部分的功能,函数将工恩呢该封装起来,以供程序调用。
二、函数定义
目的:将一些常用的功能封装起来,以供日后调用。
步骤:确定函数名,确定函数体,调用
格式:返回值类型 函数名(形式参数列表)
{ 函数体 }
三、函数调用
定义函数需要明确定的东西:
①. 取一个有意义的函数名
②. 确定函数的形参
③. 编写函数体
④. 返回值
示例:
Int average(int num1,int num2)
{
Return (num1+num2)/2;
}
int main()
{
Int a=1;
Int b=3;
Int c=average(a,b); //调用函数
Return 0;
}
四、参数
①. 形参:定义函数时,函数名后面的参数 如num1和num2
②. 实参:调用函数时,传人的具体数据 如a和b
③. 形参和实参的个数必须相等
④. 函数体内部不能定义和形参同名的变量
⑤. 如果是基本的数据类型作为形参,则是纯粹的值传递,修改函数内部形参的值并不会影响到实参的值
⑥. 一个函数可以没有形参,也可以有无限个形参
五、函数的返回值
(一)Return 的作用:
①. 退出函数
②. 返回一个具体的值给函数的调用者
(二)返回值使用注意:
①. C语言是弱语法弱类型的语言,非常不严格
②. 如果没有写清楚返回值的类型,则默认为int型的
③. Void代表没有返回值
④. 就算明确声明了返回值类型,也可以不返回任何的值
⑤. C语言默认情况下,不允许有两个同名的函数
六、函数使用注意
①. 默认不允许函数重名
②. 函数之间是平等的,不能够嵌套定义
③. 函数不可以重复定义,但是可以重复声明,只要是在调用前声明就可以,地方随便
④. 函数如果是只要声明没有定义,那么编译可以成功,但链接时会失效
七、多人协作
#include<.stdio.h>是一个系统头文件。
#include<abc.txt>相当于把abc.txt文件中的所用内容以纯文本的方式拷贝到当前位置。
“”表示文件与.c文件处于同一路径,可以使用相对路径也可以使用绝对路径。左边有/的是绝对路径,没有/则为相对路径。
注意:自定义的文件使用“”,系统文件使用<>。
函数如果在调用时,函数定义在调用之后,且前面没有进行相应的声明,则编译器报错;
调用函数,没有函数声明,编译器不会报错,链接时报错,不定义函数反而不报错。
链接:把项目中所以相关的.o目标文件和c语言的函数库合并在一起,生成可执行文件。
通常:
①. 函数的定义放在.c文件中,函数的声明放在.h文件中
②. 如果要是有某个.c文件中定义的函数,只需要包含.c文件对应的.h文件即可
③. .h文件生下来就是打酱油被别人拿来拷贝包含的,编译链接时不用写出
八、补充
(1)main函数的返回值是返回给操作系统的,0为正常退出,其他值为非正常退出。用以进行系统日志,其实它返回任何值对程序本身没有影响,仅仅只是标记
(2)Printf函数的返回值为字符数。如printf(“abc”);则返回值为3,若printf(“abc男\n”);的返回值为7,因为一个中文占3个字符。