gpt4 book ai didi

c - 动态加载和后期绑定(bind)有何异同?

转载 作者:行者123 更新时间:2023-11-30 18:05:07 26 4
gpt4 key购买 nike

来自维基百科:

动态加载是一种机制,计算机程序可以在运行时将库(或其他二进制文件)加载到内存中,检索库中包含的函数和变量的地址,执行这些函数或访问这些变量,并从内存中卸载库。

后期绑定(bind)是一种计算机编程机制,其中在运行时按名称查找对象上调用的方法。

<小时/>

在我看来,

相似之处在于它们都是在运行时查找方法的机制。

区别在于动态加载在运行时加载库后不需要使用链接器,但后期绑定(bind)始终需要链接器。

我不确定我是否正确,尤其是差异部分。我想从您的分析中了解更多信息。

最佳答案

后期绑定(bind),很像过度使用,是一种以牺牲正确性和可能的​​后期灾难性失败为代价来挤出一些额外好处(性能/内存限额)的黑客行为。

如果没有后期绑定(bind),只有在加载时可以解析重定位所需的所有符号时,模块的动态加载才会成功,并且您会收到一个有意义的错误,如果无法解析这些错误,您可以从中恢复。通过后期绑定(bind),动态加载实际上总是“成功”,然后当动态加载的模块尝试引用无法解析的符号时,程序可能会崩溃。

关于c - 动态加载和后期绑定(bind)有何异同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6866432/

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