C语言函数
一、是什么?
是指编程中对一块功能代码的封装,可以理解一个程序片段
二、有什么用?
可以封装代码,方便调用,提高复用性
三、怎么用?
定义: 返回值类型 函数名(形参类型 参数名1....){代码块 返回值}
调用: 函数名(实参1,实参2....);
四、什么时候用?
当需要取封装一段代码实现一个对应的功能时候
五、有什么特点?
1.返回值类型不定义,默认是int,如果不需要具体返回值类型,用void,return可以省略.
2.是否要定义参数 看是否有未知内容参与运算,调用时参数必须对应,参数传递的是值
3.return可以有多个,但是如果执行到return 就不会再执行后面的代码,函数执行结束.
4.函数不调用不执行,执行顺序看调用顺序,
5.函数必须定义才能调用,但不能重复定义,不能嵌套定义.不能自己调用自己(死递归)
6.C语言中不允许作嵌套的函数定义 ,但是可以嵌套函数调用
函数的声明
一、是什么?
是对编译器的一个说明,用于告知系统在本函数中所调用的函数是什么类型.
如:定义的函数的返回值类型是什么,参数类型是什么.
二、有什么用?
可以告诉编译器我将定义什么函数,从而让别的函数能方便调用
三、怎么用?
把函数去掉{},拷贝到声明区域(函数里或外)就可以.
四、什么时候用?
当需要定义函数的时候
五、有什么特点?
1.仅声明可以不创建函数,但要调用必须定义函数
2.声明可以只有参数类型,省略参数名如:int add(int);
3.函数使用前应该声明,不声明的话默认为返回值为int类型来处理,很可能出错
4.声明区域可以在其他函数里或者函数外.只要放在本函数调用之前就可以
5.函数的返回值是什么类型就要用什么类型的变量去接
6.当被调函数的函数定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作说明而 直接调用。
C语言的头文件
一、是什么?
是C语言中以.h结尾的文件.如:stdio.h
二、有什么用?
用于声明(描述)一个函数,把多个代码文件(如:a.c.....b.c等)中的函数,声明在这个文件中,以便于使用已经封装好的函数
三、怎么用?
定义: 新建一个以.h结尾的文件,把需要用到的函数的声明直接放在里面.
引用:自定义的头文件:#include "头文件名.h"
编译器类库里的头文件:#include<头文件名.h>
四、什么时候用?
当程序需要由多个c文件组成时
五、有什么特点?
1.在头文件中仅作声明,不做具体实现
2.在头文件有声明只能确保编译成功成.o文件,但不确保能链接成功
3.自定义的头文件引用时必须要有路径
#include的用法
一、是什么?
是C语言中的一个预处理指令
二、有什么用?
用于把一个文件的内容拷贝到所在位置
三、怎么用?
引用:自定义的文件:#include "文件路径和名称"
编译器类库里的文件:#include<文件名>
四、什么时候用?
当程序需要用到别的文件时
五、有什么特点?
1.可以定义在函数内也可以在函数外
include可以包含头文件,也可以包含文本文件。include不一定非要写在第一行
2.必须包含路径.省略或./表示当前路径 /开头表示绝对路径 ../表示上一层路径
3.以#开头,后面不能加分号
include 语句之后不需要加 ";"(因为#include它使一个预处理指令,不是一个语句)
3.必须定义在要使用之前,否则可以编译通过生成.o文件,但不能链接成功
4.#include " " 包含的是一个用户定义的文件,可以是头文件,也可是普通文件
1、#include " "在当前文件所在的路径下查找 2、如果上面没有找,到编译器include路径查找 3、如果编译器include路径下没有找到,系统的include路径下查找 4、如果上面三个都没有找到就报错了。
#include <>包含一个系统(编译器自带)的头文件1、编译器的include路径下查找2、如果没有找到就系统include路径下查找3、如果都没有找到就报错
形参和实参
定义函数的时候,函数名后面小括号中的参数,简称形参形式参数是什么样类型的数据,那么实际参数也必须是什么样的类型
函数内部不可以定义与函数形参同名的变量,因为形参与函数的代码是一个代码块
调用函数的时候,函数名后面小括号中的参数,简称实参
发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主 调函数向被调函数的数据传送。
参数的传递过程:
1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因 此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。
2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。
3.实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。
函数的返回值
函数的值只能通过return语句返回主调函数。
return语句的一般形式为:return表达式;
或者为:return (表达式);
return的功能是计算表达式的值,并返回给主调函数!