我知道头文件只包含声明和函数原型,而不是函数本身.
通常,是的(虽然理论上你可以在头文件中放入你想要的任何代码).请记住,头文件通常只是#include-d到源文件中,#include基本上等同于复制和粘贴.
我知道图书馆是一个单一的文件
不必要."库"有点松散,但一般来说,它用于描述一起执行一些有用的任务的函数集合(以及可能的数据).这些功能可以在一个或多个源文件中定义.通常,库被预编译为独立目标文件.但同样,不一定.
这些目标代码是否必须仅以C语言编写
不可以.它们可以用任何语言编写(因为它总是被编译成原始机器代码).但是,如果要使用 C中的库,则必须满足某些兼容性要求,以确保C编译器知道如何正确调用库函数.
在链接时,整个库文件是否附加到可执行文件
有时.这就是所谓的静态链接.另一种主要类型是动态链接,其中库对象代码在运行时链接.