引自动态绑定 C++,
动态绑定与动态链接正交...
我想知道如何理解“正交”的含义?是因为
源代码编译成机器码就像是深入,各种机器码的联动就像是水平的,所以它们是相互正交的,
(静态/动态)名称绑定是编译中的一个概念
静态/动态链接是链接中的概念吗?
如果在动态链接中,任何涉及的绑定,即任何涉及的对象(数据和/或代码)与标识符的关联都是动态绑定?
谢谢!
引自动态绑定 C++,
动态绑定与动态链接正交...
我想知道如何理解“正交”的含义?是因为
源代码编译成机器码就像是深入,各种机器码的联动就像是水平的,所以它们是相互正交的,
(静态/动态)名称绑定是编译中的一个概念
静态/动态链接是链接中的概念吗?
如果在动态链接中,任何涉及的绑定,即任何涉及的对象(数据和/或代码)与标识符的关联都是动态绑定?
谢谢!
“正交”意味着一个人的存在或状态(在更抽象的意义上)完全不依赖于另一个人的相应状态。在这种特定情况下,这意味着无论是否发生动态绑定,都可能发生动态链接,反之亦然。
作为一个实际的例子,考虑动态绑定是在运行时解决由于源代码中存在的函数调用而应该执行的代码片段。这段代码可能存在于链接时链接到可执行文件的库中(静态链接),也可能存在于运行时动态加载的库中(动态链接)。绑定部分不关心链接是如何完成的;因此,它与后者正交。
你还问:
如果在动态链接中,任何涉及的绑定,即任何涉及的对象(数据和/或代码)与标识符的关联都是动态绑定?
这个问题没有意义,因为链接过程中不涉及绑定。绑定可以静态发生(由编译器解析并烘焙到目标代码中)或动态发生(在运行时解析),但如何绑定的决定和解析绑定的逻辑根本不与链接交互。