关于C静态库
今天,我们将用C编程语言介绍静态库。 我知道您几乎无法平息您的兴奋,所以让我们直接进入。 在C语言中,库基本上只是在执行程序时可以使用的目标文件的有组织的(或换句话说:索引的)集合。 哦,如果您想知道:目标文件只是编译器在编译过程中的实际输出。 目标文件主要是机器代码,但是具有额外的信息,这些信息使它们可以在编译的链接阶段与其他文件合并,以形成一个可执行文件。 在这里可以找到有关编译过程的更多信息。 想象一下,您正在撰写有关马达加斯加陆龟的进化和历史的论文。 您只想直接撰写有关乌龟的文章,而不想为重新审视达尔文的整个进化论而烦恼。 自然地,您只是简单地用名字来称呼他的理论:“达尔文的进化论”。此外,您还引用了达尔文的开创性著作《物种起源》 ,所以那些不知道“进化论”是什么的人,可以去图书馆 并准确地看到这三个词的结合,就代表了。 C库或多或少是建立在同一前提下的:通过重用某人(包括您过去的自我)已经完成的工作,可以节省大量的时间和精力。 我们还从以下事实中受益:达尔文可能比我们更好地编写了关于进化的文章,并且类似地,从事C标准库之类的开发人员的集体意识可能为打印字符串编写了比我们更好的函数(至少就我而言是正确的)。 库很像可执行文件,但是不是直接执行,而是使用指定的参数从程序中通过名称调用它们。 静态库与动态(有时称为:共享)库的不同之处在于,静态库代码直接链接到最终的可执行文件中。 动态链接指向内存中函数的地址,而不是直接将目标代码粘贴到其中。实际的目标代码仅在程序运行时(运行时)才出现。 与动态链接相比,静态链接有两个缺点。 大小:程序中的每个函数都将直接链接目标代码。这等效于每次您要说“进化论”时都复制和粘贴“论物种起源…