c - C 头文件中的函数?

标签 c function header

我听说您将函数原型(prototype)放在头文件中,然后将函数定义放在 .c 文件中。但是,这个.c文件是什么。例如,如果你要包含一个文件“foo.h”,你会把前面提到的.c文件称为“foo.c”,把函数定义放在里面,把它和foo.h放在同一个地方,并且当您尝试包含 foo.h 时,该函数是否会从 c 文件中继承并准备好使用?

最佳答案

不,只是将 .c.h 放在一起并将其包含在您的代码中并不能神奇地继承函数的定义。

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

gcc -c foo.c -o foo.o

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

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

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

Undefined reference to function foo_function.

关于c - C 头文件中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50399128/

相关文章:

C 单链表使用 gcc 但不使用 dcc 出现段错误

c++ - C++ 模板函数可以选择成员变量吗?

Swift Alamofire 向所有请求添加自定义 header

php - 如何在cakephp中写内容类型?

r - 如何在R表的表头中写入上标?

c - sizeof(long long) != 8 的架构/ABI

c - 在 macOS 上使用 Xcode 作为 root 运行应用程序时出现非法指令 (ud2)

jquery - 有没有一种方法可以在 jQuery 中对元素进行动画处理,并为高度变化的每个像素触发一个函数?

c - 将值存储在变量中和将变量的值存储在数组中会产生不同的输出

r - 如何运行从 eventReactive 内部获取数据并在表中绘制的函数?