double a;
unsigned int b;
运行时,操作系统如何知道这些变量关联的字节数以及它们的位应该如何解释?如果这是与语言/操作系统相关的,假设在Windows上使用C语言。
是否有一个LUT将变量标识符的比特表示映射到字节大小和数据类型?从在uC上进行汇编编程中,我记得编译器神奇地知道为变量分配了多少字节,并相应地执行零填充等操作。
double a;
unsigned int b;
运行时,操作系统如何知道这些变量关联的字节数以及它们的位应该如何解释?如果这是与语言/操作系统相关的,假设在Windows上使用C语言。
是否有一个LUT将变量标识符的比特表示映射到字节大小和数据类型?从在uC上进行汇编编程中,我记得编译器神奇地知道为变量分配了多少字节,并相应地执行零填充等操作。
就操作系统而言,这些只是内存块。它不知道它们包含什么,除了“随机位串”之外。
智能都在编译器中 - 编译器跟踪变量的类型,然后生成适当数量字节的加载和存储指令,并生成操作使用适当大小和编码方案的操作数的代码(例如,在无符号 int 上使用无符号加操作而不是有符号加操作)。