变量的类型是否存储在某处?它在哪里?

例如,

float f = 2.4;
int n = f + 1;

n = 3

变量 f 在内存中是 0x4019999a,所以我认为 f + 1 = 0x4019999a + 1 但计算机没有。如何知道 f 是“浮动”?即使 f 在内存中只是 0x4019999a。变量的类型是否存储在某处?

回答

类型未显式存储(在优化的生产可执行文件中;调试输出中包含各种额外信息)。

“所以如果类型没有被存储,它怎么知道如何与f = f + 1不同地处理n = n + 1?” 我听到你问。:-) 答案是编译器在编译时知道类型,并为这些操作输出不同的 CPU 指令。在这种f情况下,它输出处理浮点值的指令,但在这种n情况下,它输出处理二进制补码整数的指令。


以上是变量的类型是否存储在某处?它在哪里?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>