1

.h我已经看到 C 程序使用其各自的文件拆分成.c文件。

我知道头文件用于宏/声明/函数原型,而 .c 文件用于函数定义。

但是这些是如何.c使用的?通过编译器的命令行传递?

4

2 回答 2

4

C 文件不是由编译器组合,而是由链接器组合。根据您编译代码的方式,这可能对您隐藏。

编译器会将每个 C 文件编译成每个 C 文件的目标文件。然后链接器将获取这些目标文件并将它们组合成可执行文件或库文件。

于 2013-11-02T00:33:49.537 回答
1

2个选项:

  • 将文件一起传递.c到编译器的命令行,以获得“编译和链接一体化”命令。你通常只对玩具和非常小的项目这样做

  • 单独编译每个.c文件(将其作为单独的编译命令行提供),生成.o文件。然后将所有这些.o文件一起传递给链接器(通常它与编译器的命令相同......)以创建您的可执行文件。这样,如果您更改.c文件,您只需编译该文件(以.o再次创建其文件)并链接,从而节省大量时间。

于 2013-11-02T00:36:43.530 回答