头文件和标准库

Kaw*_*iKx 4 c header

我是编程新手.到目前为止学习C. 我知道头文件只包含声明和函数原型,而不是函数本身.我对么?

我知道Library是一个包含不同目标代码的单个文件.这些目标代码是否必须仅以C语言编写,或者其他语言也可用于生成此类目标代码?

在链接时,整个库文件是否附加到可执行文件或只是头文件中声明的目标代码?

Oli*_*rth 9

我知道头文件只包含声明和函数原型,而不是函数本身.

通常,是的(虽然理论上你可以在头文件中放入你想要的任何代码).请记住,头文件通常只是#include-d到源文件中,#include基本上等同于复制和粘贴.

我知道图书馆是一个单一的文件

不必要."库"有点松散,但一般来说,它用于描述一起执行一些有用的任务的函数集合(以及可能的数据).这些功能可以在一个或多个源文件中定义.通常,库被预编译为独立目标文件.但同样,不一定.

这些目标代码是否必须仅以C语言编写

不可以.它们可以用任何语言编写(因为它总是被编译成原始机器代码).但是,如果要使用 C中的库,则必须满足某些兼容性要求,以确保C编译器知道如何正确调用库函数.

在链接时,整个库文件是否附加到可执行文件

有时.这就是所谓的静态链接.另一种主要类型是动态链接,其中库对象代码在运行时链接.