gpt4 book ai didi

c++ - stdio.h对应的库文件是动态链接的还是静态链接的

转载 作者:行者123 更新时间:2023-11-30 18:28:02 31 4
gpt4 key购买 nike

我的意思是数学库是动态链接的。所以我在想与 stdio.h( printf 和 scanf 代码)对应的库文件是动态链接的?另外,当我们包含 stdio.h 时,其中声明的所有函数都会在运行时添加,还是仅添加那些使用的函数?

最佳答案

在 Linux 和许多其他 *nix 系统上,通常动态链接 C 标准库,这是 gccclang 的默认设置。但如果您愿意,您仍然可以自由地进行静态链接。这完全取决于您的系统、环境、工具链和个人设置。

Also when we include stdio.h , then all functions declared in it are added at run time or only those functions which are used ?

包含 header 不会链接任何内容。 C 标准库由 C 编译器自动链接,否则您将得到 undefined reference errors如果您使用在例如中声明的函数,则在链接步骤中stdio.h

也就是说,通过动态链接,整个库会在动态链接器需要时在运行时加载 - 无法加载单个函数。动态链接的好处是,操作系统只需要该库的一个拷贝,无论有多少进程链接到它。该库可以映射到每个需要它的进程地址空间中。这可以在运行时节省 RAM。

关于c++ - stdio.h对应的库文件是动态链接的还是静态链接的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177596/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com