当我们在 C 中包含头文件时,我们实际上添加了 printf 、 scanf 等函数的声明。但是函数的代码(函数声明)如何添加到程序中?
最佳答案
这是通过链接的过程完成的。单独编译的翻译单元有一种符号引用相关名称的方法,因此您的代码只会说“调用名称为‘printf’的函数”,链接过程的工作是在提供的其中一个中查找这些符号对象或库文件。
标准库通常隐式链接到您的代码,因此您可能没有意识到您正在将您的代码与预先存在的库代码链接起来。如果您使用自己的库,您肯定会意识到这一点。
请注意,链接没有标准,因此您通常不能用一种编译器编译一个文件,用不同的编译器编译另一个文件,然后将它们链接在一起。问题不仅在于就名称 的表示方式达成一致,还在于如何为函数调用生成代码。然而,在提供一定程度的互操作性的流行平台上有几个“非正式的”调用约定和名称修改规则。
关于c - 何时以及如何在 c 中添加库函数的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31193088/