您不会将源文件包含到其他源文件中。.h
相反,您制作一个包含函数声明的头文件(带有扩展名) ,即函数原型。然后,您分别构建两个源文件,并将它们链接在一起以形成最终的可执行文件。
support.h
所以像这样的头文件
#ifndef SUPPORT_H
#define SUPPORT_H
void blah(void);
#endif
(预处理器#ifdef
//的东西用于包含保护#define
,以防止在同一源文件中多次包含。)#endif
然后是support.c
源文件
#include "support.h"
void blah(void)
{
/* Some code here... */
}
最后是main.c
源文件
#include "support.h"
int main(void)
{
blah();
return 0;
}
如果您有 IDE(如 Visual Studio),并且将这些文件添加到项目中,则 IDE 将确保所有内容均已正确构建和链接。如果您在命令行上编译,请将每个源文件编译成一个目标文件(通常使用类似-c
(用于 GCC 和 clang)之类的选项),然后将两个目标文件链接在一起以创建可执行文件。
使用 GCC 的命令行示例:
$ gcc -Wall -c main.c -o main.o
$ gcc -Wall -c support.c -o support.o
$ gcc main.o support.o -o my_program
上面三个命令会先把源文件编译成目标文件,然后链接在一起。