关于C编程中的.c文件和.h文件?

关于C编程中的.c文件和.h文件?,第1张

概述在foo.c中有一个函数f,我将f Prototypes放入头文件中. 然后,有3个问题: >头文件必须命名为foo.h吗? > foo.c和foo.h必须在同一个目录中吗? >如果两个问题的答案都是否定的,也就是说,头文件可以命名为f.h,foo.c和f.h可以在不同的目录中.看一个例子: 〜/的CFile / foo.c的 #include "~/hfile/f.h"int f(void){ 在foo.c中有一个函数f,我将f Prototypes放入头文件中.

然后,有3个问题:

>头文件必须命名为foo.h吗?
> foo.c和foo.h必须在同一个目录中吗?
>如果两个问题的答案都是否定的,也就是说,头文件可以命名为f.h,foo.c和f.h可以在不同的目录中.看一个例子:

〜/的Cfile / foo.c的

#include "~/hfile/f.h"int f(voID){     ...}

〜/ Hfile / f.h

int f(voID);

〜/主/ cmain.c

#include "~/hfile/f.h"int main(voID){    f();     ...  }

然后,当我在cmain.c中调用f函数时,cmain.c可以通过#include指令找到f.h,但cmain.c如何通过f.h找到foo.c,因为cmain.c只包含f.h而不包括foo.c?或编译器或链接器如何通过f.h找到foo.c?

解决方法 1.头文件必须命名为foo.h吗?

这不是必要的,但它可以很方便,而且大部分时间都是不成文的规则.

2. foo.c和foo.h必须在同一个目录中吗?

这不是必需的.您可以给c编译器包含目录.或者您可以包括相对于目录,例如

#include "inc/foo.h"

3.如果两个问题的答案都是否定的,foo.c和f.h可以在不同的目录中.然后,当我调用f函数时,它可以通过#include指令找到f.h文件,但编译器或链接器如何找到foo.c并从foo.c调用f?

请参阅答案2.例如,请参阅带有-I选项的gcc手册(https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html)

更新:
由于问题已经延长,也许您还可以查看较旧的帖子C/C++ header and implementation files: How do they work?.

总结

以上是内存溢出为你收集整理的关于C编程中的.c文件和.h文件?全部内容,希望文章能够帮你解决关于C编程中的.c文件和.h文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1222105.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存