显然编译器必须存储信息,无论变量x是unsigned int还是signed int,float等等,但是在哪里以及如何?
是否有某种查找表?我在内存中找到它,在可执行文件的哪个部分?
答案 0 :(得分:4)
在编译器选择的指令中是隐含的。
例如,如果地址18包含float
,则编译器可以使用指令从地址18加载浮点寄存器。如果地址20处的邻居包含int
,则编译器可以从先前的地址加载一个整数寄存器+2。
如前所述,编译器有一个符号表,因此它知道所有变量的位置。这允许它选择正确的指令。但是,您不能简单地从单个指令中获取该符号表的内容。
答案 1 :(得分:2)