C语言能否实现
binding以后呢?
解决方法
后期绑定并不是C语言本身的一个功能,更多的是您的执行环境为您提供的功能.
许多系统将提供延迟绑定作为链接器/加载器的功能,您还可以使用显式调用,例如dlopen(打开共享库)和dlsym(以获取该库中的符号的地址,以便您可以访问它或叫它).
与C标准相比后期绑定的唯一半便携式方法是使用系统()的一些诡计,甚至至少部分是实现特定的.
如果你不是说延迟绑定,而是多态,你可以用函数指针来实现这一效果.基本上,您创建一个结构体,它具有一个类型的所有数据以及用于定位该类型的方法的函数指针.然后,在“构造函数”(通常是一个init()函数)中,将函数指针设置为该类型的相关函数.
即使不使用它,仍然需要包含所有代码,但是可以通过这种方式获得多态.