C ++旨在在单个地址空间内运行

时间:2015-05-20 09:49:12

标签: c++ operating-system

我刚开始学习C ++。我使用Stroustrup作为参考书。在阅读介绍性章节的过程中,我遇到了一条我无法理解的问题。

" C ++旨在在单个地址空间内运行"

有人可以解释一下这是什么意思吗?

1 个答案:

答案 0 :(得分:0)

今天实际上是不真实的。事实上,C ++设计用于运行一个或两个地址空间。如果代码和数据是分开的,则有两个地址空间。

地址空间是可能的指针值的范围。由于void*可以指向任何对象,这意味着所有对象都在void*的地址范围内。但是,未指定void*是否可以指向函数。因此,函数的地址空间可能与对象的地址空间不同。

然而,最初的C ++是在实际上具有统一地址空间的机器上设计的,其中对象和功能可以混合在一起。 POSIX和Windows实际上需要这个,因为dlsym / GetProcAddress支持函数和对象查找。