lakers_ja
2021-09-06 14:37
采纳率: 50%
浏览 67

一个项目(Project)中有多个.c .h文件,比如a.c a.h b.c b.h等等

请问,一个项目(Project)中有多个.c .h文件,比如a.c a.h b.c b.h等等 那么他们之间的关系是什么呢,还有就是编译的时候是怎样的呢,a.c a.h是一个整体,b.c b.h是一个整体吗? 还是它们所有是一个整体。另外就是这种情况下,会有几个main()呢? 我只接触过一个.c文件和一个.h文件的情况。

  • 好问题 提建议
  • 收藏

6条回答 默认 最新

  • CSDN专家-sinjack 2021-09-06 14:39
    已采纳

    一个项目中有多个.c.h文件,他们之间都是互相独立的,如果文件之间需要互相引用,就通过导入库的方式引入就行。
    一个项目中,只能有一个main()方法。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 
    使用#include “xxx.h”,包头文件包含进来即可使用,多个文件之间是独立的。
    
    评论
    解决 1 无用
    打赏 举报
  • CSDN专家-link 2021-09-06 14:44

    首先,所有的文件从逻辑上都是独立的,是否有关联要看你各个文件书写的内容。比如a.c中的函数体用到的一些变量是在a.h中定义的,那么两者就有关联性。需要在a.c中#include a.h。一般.h文件主要用来申明一些类型,如类、数据结构、特定类型等。.c或.cpp主要是具体的实现代码。
    任何一个项目,有且仅有一个main()函数。否则编译报错

    希望以上回复对你有所帮助,学习进步

    评论
    解决 1 无用
    打赏 举报
  • 於黾 2021-09-06 14:41

    你可以说他们都是一个整体,因为都在同一个项目文件夹下面,编译的时候编译器会把他们统一进行编译。但这只是对于编译器来说是这样的。
    你也可以说他们都不是一个整体,因为毕竟.c文件和.h文件有时根本就不在同一个文件夹下面放着。
    从逻辑上来说,.h文件是.c文件的头文件,.c文件里面会显式的引用.h文件,就像这样:#include a.h
    所以其实他们文件名如果并不相同也无所谓,只是习惯上我们会把文件名取成相同的,避免混乱。

    评论
    解决 1 无用
    打赏 举报
  • qfl_sdu 2021-09-06 14:48

    如果a.h中#include "b.h",那么就是a.h依赖于b.h,在编译器链接a.h时先链接b.h
    如果相互之间没有include,那么就是相互独立的

    评论
    解决 1 无用
    打赏 举报
  • 張公㜽 2021-09-06 14:51

    举个栗子吧:

    比如代码文件都是一本本的书。

    a.c是一本字典, a.h是字典的目录,概括了a.c的大致内容,并把a.c重要的接口给提取到了a.h文件中。
    b.c是一本作文书, b.h是作文书的目录,那么作文肯定是需要用到文字的是吧,所以需要包含#include "a.h"字典的目录文件(当然你要直接包含字典也可以,就是文件会特别大了),然后作文书中的某个字,你不懂什么意思,那就得翻字典把,然后a.h就就告诉你这个字在字典什么地方。

    main函数相当于任务,作文书中的作文都在那里了,字典的字也都在那里,但是要看哪篇作文这个得制定任务,所有包含main函数的文件就相当于任务书,告诉你要做什么。一个任务只有一个起始任务书(main)

    评论
    解决 1 无用
    打赏 举报