假设我没有操作系统,我编写了一个程序并编译程序,以便在没有操作系统的计算机上运行。我的程序有一行int a = 0;我的问题是变量a存储在哪里以及程序如何确定存储变量的位置?
答案 0 :(得分:0)
这取决于你宣布它的地点和方式。
如果它是全局变量或在函数内声明的静态变量,则链接器决定放置它的位置(通常分别在.data或.bss部分中,用于初始化或未初始化的数据)。你的可执行加载器(或者,如果你没有它下面的操作系统,你的引导加载程序)将确定它最终在RAM中的确切位置。
如果它是一个局部变量,编译器会把它放在你的调用堆栈或寄存器中。