为什么引入库头文件就可以使用库函数而不需要与库函数c文件一起链接

https://blog.csdn.net/qq_43684922/article/details/103575896?ops_request_misc=&request_id=&biz_id=102&utm_term=%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BC%95%E5%85%A5%E5%BA%93%E5%A4%B4%E6%96%87%E4%BB%B6&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-103575896.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187

那么为什么你可以直接去使用一个你没有声明也没有定义的函数呢?
回答: 因为这个函数在我们lib动态库中,动态库中有这个内容,而且系统动态库已经被载入内存了

ldd a.out
在这里插入图片描述
可以看到我们a.out依赖了三个库,所以其实printf的实现是在库里,我们运行的时候再加载的,这三个库是libc库,里面有常见库函数的实现。

使用nm指令验证是否在库里: nm -D /lib/x86_64-linux-gnu/libc.so.6 | grep printf
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学无止境2022

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值