gpt4 book ai didi

c - C语言如何实现后期绑定(bind)?

转载 作者:太空狗 更新时间:2023-10-29 16:53:09 24 4
gpt4 key购买 nike

如何实现后期binding用 C 语言?

最佳答案

后期绑定(bind)并不是 C 语言本身的功能,更多的是您的执行环境为您提供的功能。

许多系统将提供延迟绑定(bind)作为链接器/加载器的一项功能,您还可以使用显式调用,例如 dlopen(打开共享库)和 dlsym (获取该库中符号的地址,以便您可以访问或调用它)。

与 C 标准进行后期绑定(bind)的唯一半可移植方法是对 system() 使用一些技巧,即使那至少部分是特定于实现的。

如果您不是在谈论延迟绑定(bind)而是在谈论多态性,那么您可以使用函数指针来实现该效果。基本上,您创建了一个 struct,其中包含一个类型的所有数据以及用于定位该类型方法的函数指针。然后,在“构造函数”(通常是 init() 函数)中,将函数指针设置为该类型的相关函数。

即使您不使用它,您仍然需要包含所有代码,但可以通过这种方式获得多态性。

关于c - C语言如何实现后期绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2085614/

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