目录
函数的声明
概念
为什么要声明
声明的方法
如何声明
如何声明
几种函数的类型
有参函数
int fun(int a, float b){
}
无参函数
int fun(void){
}
int fun(){
}
带返回值的函数
在定义函数时,必须带有返回值类型,在函数体内,必须有return,若没有返回值类型,则默认返回int
不带返回值,就是void
void fun(){
}
返回值类型 函数名(形参列表) {
函数体;
}
函数的声明
概念
对已经定义的函数,进行说明
函数的声明可以声明多次
为什么要声明
在某些情况下,如果不对函数进行声明,编译器在编译时,可能会不认识这个函数,因为编译器在编译C语言程序时,是从上往下编译的
声明的方法
对于单个文件而言,如果把函数写在主调函数的上面,此时是不需要进行声明的,因为我们在执行主函数的时候,前面的函数都已经识别了,此时可以直接调用
如果把这几个函数写在主调函数的下面,那么编译器此时找不到这个函数
什么时候需要声明
1 主调函数和被调函数在同一个文件时
- 被调函数在上面,主调函数在下面,亦即在没有声明的情况下,写在下面的函数可以调用写在上面的函数,但是写在上面的函数不能调用写在下面的函数
如何声明
1 直接声明
将被调用函数的第一行复制过去,后面加分号
2 间接声明
将函数的声明放在头文件中,.c文件包含这个头文件即可
什么时候需要声明
2 主调函数和被调函数不在同一个.c文件中
- 此时一定要声明
如何声明
1 直接声明
将被调用函数的第一行复制过去,后面加分号,前面加extern
2 间接声明
将函数的声明放在头文件中,.c文件包含这个头文件即可
myfun.h 头文件声明函数
myfun.c 实现函数
注意在myfun.c的最上面#include "myfun.h"
特别注意:此处要用"",而非<>,因为<>是从系统的库里去找,而我们这里的myfun.h是自定义的,因此要使用"",""的意思是在当前目录下寻找头文件
myfun.h
void myfun1();
// MYFUN_H
main.c
#include <stdio.h>
#include "myfun.h"
int main(){
myfun1();
return 0;
}