数据类型和大小如何存储在内存中?

4 assembly types memory-management

double a;
unsigned int b;
Run Code Online (Sandbox Code Playgroud)

在运行期间,操作系统将如何知道这些变量附加了多少字节,以及如何解释它们的位?如果这是依赖于语言/ OS的,请假设Windows上有C.

是否存在将变量标识符的位表示映射到字节大小和数据类型的LUT?从uC上的汇编编程,我记得编译器神奇地知道为变量分配了多少字节,并适当地执行了零填充/等.

Gia*_*ian 5

就操作系统而言,这些只是内存块.除了"随机位串"之外,它对它们包含的内容一无所知.

智能都在编译器中 - 编译器跟踪变量的类型,然后为适当的字节数生成加载和存储指令,并生成对适当大小和编码方案的操作数进行操作的代码(例如,它知道使用一个无符号的添加操作,而不是unsigned int上的有符号的操作.