然后,有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文件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)