double a;
unsigned int b;
在运行时,操作系统如何知道这些变量有多少字节,以及它们的位应该如何解释?如果这是依赖于语言/操作系统的,则在 Windows 上假设为 C。
是否有将变量标识符的位表示映射到字节大小和数据类型的 LUT?从 uC 上的汇编编程中,我记得编译器神奇地知道分配给变量的字节数,并适本地执行零填充/等。
最佳答案
就操作系统而言,这些只是内存块。除了“随机位串”之外,它对它们包含的内容一无所知。
智能都在编译器中——编译器跟踪变量的类型,然后为适当的字节数生成加载和存储指令,并生成对适当大小和编码方案的操作数进行操作的代码(例如,它知道使用无符号加法运算,而不是无符号整数上的有符号运算)。
关于memory-management - 数据类型和大小如何存储在内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17438381/