【发布时间】:2012-05-05 07:46:51
【问题描述】:
我想知道计算机以 1 和 0/低压和高压的形式存储所有信息,yada yada...但是当我们编译程序时,它 - 或者只是存储在计算机上的任何数据 - 是以二进制形式...那么计算机如何区分 2 条数据,因为它只包含 0 和 1 的流...为了让我的问题更清楚,让我们从 C 中获取一个可笑的简单代码:
void main() {
int A = 0;
int* pA = &A;
char c = 'c';
char* pC = &c;
return;
}
它什么也不做——只生成 4 个 int 类型的变量、指向 Int 的指针、char 和指向 Char 的指针...现在这些将以 0 和 1 的形式存储在某处...那么,如何计算机是否知道某个变量从哪个位开始以及在哪里结束?首先,您可能会说计算机有它的地址,好吧,当然。但是最后呢?......那么像对象/结构这样的复杂数据类型呢?
最后但并非最不重要的一点是,函数/程序呢?
【问题讨论】:
标签: compiler-construction binary low-level