请问,一个项目(Project)中有多个.c .h文件,比如a.c a.h b.c b.h等等 那么他们之间的关系是什么呢,还有就是编译的时候是怎样的呢,a.c a.h是一个整体,b.c b.h是一个整体吗? 还是它们所有是一个整体。另外就是这种情况下,会有几个main()呢? 我只接触过一个.c文件和一个.h文件的情况。
一个项目中有多个.c.h文件,他们之间都是互相独立的,如果文件之间需要互相引用,就通过导入库的方式引入就行。
一个项目中,只能有一个main()方法。
使用#include “xxx.h”,包头文件包含进来即可使用,多个文件之间是独立的。
首先,所有的文件从逻辑上都是独立的,是否有关联要看你各个文件书写的内容。比如a.c中的函数体用到的一些变量是在a.h中定义的,那么两者就有关联性。需要在a.c中#include a.h。一般.h文件主要用来申明一些类型,如类、数据结构、特定类型等。.c或.cpp主要是具体的实现代码。
任何一个项目,有且仅有一个main()函数。否则编译报错
希望以上回复对你有所帮助,学习进步
你可以说他们都是一个整体,因为都在同一个项目文件夹下面,编译的时候编译器会把他们统一进行编译。但这只是对于编译器来说是这样的。
你也可以说他们都不是一个整体,因为毕竟.c文件和.h文件有时根本就不在同一个文件夹下面放着。
从逻辑上来说,.h文件是.c文件的头文件,.c文件里面会显式的引用.h文件,就像这样:#include a.h
所以其实他们文件名如果并不相同也无所谓,只是习惯上我们会把文件名取成相同的,避免混乱。
如果a.h中#include "b.h",那么就是a.h依赖于b.h,在编译器链接a.h时先链接b.h
如果相互之间没有include,那么就是相互独立的
举个栗子吧:
比如代码文件都是一本本的书。
a.c
是一本字典, a.h
是字典的目录,概括了a.c
的大致内容,并把a.c
重要的接口给提取到了a.h
文件中。b.c
是一本作文书, b.h
是作文书的目录,那么作文肯定是需要用到文字的是吧,所以需要包含#include "a.h"
字典的目录文件(当然你要直接包含字典也可以,就是文件会特别大了),然后作文书中的某个字,你不懂什么意思,那就得翻字典把,然后a.h
就就告诉你这个字在字典什么地方。
main函数相当于任务,作文书中的作文都在那里了,字典的字也都在那里,但是要看哪篇作文这个得制定任务,所有包含main
函数的文件就相当于任务书,告诉你要做什么。一个任务只有一个起始任务书(main)