首页 > 解决方案 > C 头文件中的函数?

问题描述

我听说您将函数原型放在头文件中,然后将函数定义放在 .c 文件中。但是,这个 .c 文件是什么。例如,如果您要包含一个文件“foo.h”,您是否会调用上述.c 文件“foo.c”,将函数定义放入其中,将其放在与 foo.h 相同的位置,并且当您尝试包含 foo.h 时,该函数是否会从 c 文件中继承,并且该函数是否可以使用?

标签: cfunctionheader

解决方案


不,只是将.cwith the.h并包含在您的代码中并不会神奇地继承函数的定义。

您需要将其foo.c单独编译成一个目标文件(在 Linux 的情况下,它是一个.o文件)。例如使用命令 -

gcc -c foo.c -o foo.o

现在这foo.o需要链接到您的实际程序。这可以通过在编译时简单地传递目标文件来完成

gcc test.c foo.o -o test.out

如果您不将foo.o与您的程序链接,您的链接器将无法找到其中定义的函数的实现,并将引发链接器错误 -

对函数的未定义引用foo_function


推荐阅读