C语言中,main.c/mat.c/main.h/test.c四个文件是如何关联,相互调用的? 高手来,回答好的给双倍的分!

main.h作为函数的头文件,一般定义的是函数的声明,枚举,结构体,共同体,#define文件编译,extern等,而mat.c多半放的是函数的试题和功能的定义,const等,test.c就不用说了,而作为函数的入口,首先从.c进入,然后里面有很多的函数,而.c的开头是有main.h文件包的包含,那我想问,难道main.c只要包含.h,不用包含mat.c的文件就可以直接调用里面的函数等了么?
高手能否把这四个文件的相互关系描述一下,本人感激不尽,见解独到的定当双倍给分!拜托了!

建议看《程序员的自我修养》一书。编译,链接过程讲的很仔细
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-22
其实多文件编译挺简单的,用VC举例吧,新建一个工程,再新建文件,main.h,main.c
编译的时候,编译器会在源文件中寻找主函数作为用户入口点.所谓头文件,其实命名什么的不一定要跟源文件同名.头文件的主要作用是声明,一些函数,他的实现可能在其他源文件中,只要包含了它的头文件,源文件在工程里面都能编译的,不需要再到原文件中用include函数所在的源文件.
举个简单的例子:
新建一个工程,里面含有四个文件,分别问test.h test.c main.c main.h
//////////////////////////////////////////////
//test.h内容
#include <stdio.h>
void test(); //声明函数
///////////////////////////////////////////////
//test.c内容
void test()
{
printf("test\n");
}
///////////////////////////////////////////
//main.h 内容
#include <stdio.h>
////////////////////////////////////////
//main.c内容
#include main.h
#include test.h
int main()
{
test();
}
///////////////////////////////////////////
如上就可以编译的,因为main.c 里面调用了test(),要用include包含其声明就可以了,test()的函数实现在test.c中,由于已经加入项目中了,编译器会自动帮你做这部分的事情本回答被提问者和网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网