C语言中,main.c/mat.c/main.h/test.c四个文件是如何关联,相互调用的? 高手来,回答好的给双倍的分!
main.h作为函数的头文件,一般定义的是函数的声明,枚举,结构体,共同体,#define文件编译,extern等,而mat.c多半放的是函数的试题和功能的定义,cons...
main.h作为函数的头文件,一般定义的是函数的声明,枚举,结构体,共同体,#define文件编译,extern等,而mat.c多半放的是函数的试题和功能的定义,const等,test.c就不用说了,而作为函数的入口,首先从.c进入,然后里面有很多的函数,而.c的开头是有main.h文件包的包含,那我想问,难道main.c只要包含.h,不用包含mat.c的文件就可以直接调用里面的函数等了么?
高手能否把这四个文件的相互关系描述一下,本人感激不尽,见解独到的定当双倍给分!拜托了! 展开
高手能否把这四个文件的相互关系描述一下,本人感激不尽,见解独到的定当双倍给分!拜托了! 展开
2个回答
展开全部
其实多文件编译挺简单的,用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中,由于已经加入项目中了,编译器会自动帮你做这部分的事情
编译的时候,编译器会在源文件中寻找主函数作为用户入口点.所谓头文件,其实命名什么的不一定要跟源文件同名.头文件的主要作用是声明,一些函数,他的实现可能在其他源文件中,只要包含了它的头文件,源文件在工程里面都能编译的,不需要再到原文件中用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中,由于已经加入项目中了,编译器会自动帮你做这部分的事情
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询