我听说您将函数原型(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/