我看到C程序被分成.h
个文件及其各自的.c
文件。
我知道头文件用于宏/声明/函数原型和.c文件用于函数定义。
但那些.c
是如何被使用的?通过编译器的命令行传递?
答案 0 :(得分:4)
C文件不是由编译器组合,而是由linker组合。根据您编译代码的方式,这可能对您隐藏。
编译器会将每个C文件编译为每个C文件的object file。然后链接器将获取这些目标文件并将它们组合成可执行文件或库文件。
答案 1 :(得分:1)
2个选项:
将.c
文件一起传递给编译器的命令行,以进行“编译和链接一体化”命令。你通常只对玩具和非常小的项目这样做
单独编译每个.c
文件(将其作为单独的编译命令行提供),生成.o
个文件。然后将所有这些.o
文件一起传递给链接器(通常它与编译器的命令相同......)来创建可执行文件。这样,如果您更改.c
文件,则只需编译该文件(再次创建其.o
文件)并链接,从而节省大量时间。