在C语言中各个函数之间进行调用的问题?

来源:百度知道 编辑:UC知道 时间:2024/06/24 10:10:14
在C语言中各个函数之间进行调用的问题?
比方说我有3个文件,分别为
file1.c (文件1)
file2.c (文件2)
file3.c (文件3)

//file1.c (文件1)
#include <stdio.h>
void main()
{
void a();
void b();
a();
while(1);
}
//file2.c (文件2)
#include <stdio.h>
void a()
{
b();
}
//file3.c (文件3)
#include <stdio.h>
void b()
{

}
用文件1去调用文件2中的函数,再在文件2中去调用文件3中的函数,这样可不可以啊?
如果文件2和文件3保存为.h的头文件
然后再在文件1里面包含文件2和文件3
这样的话可以可以也这样调用啊?

这样调用是可以的,只要调用之前声明函数的原型即可,就是让编译器知道这个函数是什么样的,而且定义已存在,只是在稍后的位置或者其他文件中,连接的时候会找掉这个函数。

函数原型的声明:
extern type funname(形参列表);

另外用头文件包含的方式也是可以的,因为头文件在编译之前有预处理器将头文件包含#include "headfile.h" or <headfile.h>替换成头文件的全部内容

这样相当于已经在调用函数之前已经让编译器看到了函数的定义

所以这样是可以的

规范的使用方法:
2个.h文件 global.h, exglobal.h
global.h 中声明
void a();
void b();
void c();

exglobal.h 中声明
extern void a();
extern void b();
extern void c();

使用时只有一个.c 文件 #include "global.h"
其他.c 文件 头部添加 #include "exglobal.h"

file2.c里面在b();之前找个地方加一句void b();即可。

可以,放在同一个项目中编译即可。