相关疑难解决方法(0)

全局变量是如何存储的?

AFAIK,有两种类型的全局变量,初始化初始化.它们是如何存储的?它们都存储在可执行文件中吗?我可以想到初始化的全局变量的初始值存储在可执行文件中.但是对于未初始化的人需要存储什么?

我目前的理解是这样的:

可执行文件被组织为多个部分,例如.text,.data和.bss.代码存储在.text部分中,初始化的全局或静态数据存储在.data部分中,未初始化的全局或静态数据存储在.bss部分中.

感谢您抽出宝贵时间查看我的问题.

更新1 - 9:56 AM 11/3/2010

我在这里找到一个很好的参考:

汇编语言源中的段 - 使用.text,.data和.bss指令构建文本和数据段

更新2 - 2010年11月10日上午10:09

@迈克尔

  1. 我在汇编代码中定义了一个100字节的未初始化数据区域,这个100字节没有存储在我的可执行文件中,因为它未初始化.

  2. 谁将在RAM中分配100字节的未初始化内存空间?该程序加载器

假设我得到以下代码:

int global[100];

void main(void)
{
   //...
}
Run Code Online (Sandbox Code Playgroud)

全局[100]未初始化.如何在我的可执行文件中重新编码全局[100]?谁会在什么时候分配它?如果它被初始化怎么办?

c c++ assembly

6
推荐指数
2
解决办法
9846
查看次数

标签 统计

assembly ×1

c ×1

c++ ×1