目录

​几种函数的类型​

​函数的声明​

​概念​

​为什么要声明​

​声明的方法​

​什么时候需要声明​

​如何声明​

​什么时候需要声明​

​如何声明​


几种函数的类型

有参函数

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

#ifndef MYFUN_H
#define MYFUN_H

void myfun1();

#endif // MYFUN_H

main.c

#include <stdio.h>
#include "myfun.h"

int main(){

myfun1();

return 0;
}