【发布时间】:2012-11-29 00:18:25
【问题描述】:
我读到所有被初始化的全局变量都将在初始化的数据段上分配空间,所有未初始化的静态和全局变量都被初始化为0,并在BSS上分配。在以下定义的情况下,
static int i = 0;
i 的空间将分配到哪里?是因为i被初始化而在初始化数据段上,还是因为i的值为0而在BSS上?
【问题讨论】:
-
看看这个:question-1294772
-
这是一个关于在某些特定平台上实际发生什么、标准要求发生什么、可能发生什么或什么的问题?
-
我想知道它会表现出什么样的行为,如果行为是明确定义的,需要发生什么。
-
@Raj 代码的行为定义明确。无论最终是数据段、BSS 段还是完全其他的东西,都 100% 取决于平台和工具的特定组合。
-
@Raj - 请记住我的回答(如下),它依赖于实现......但这对于 Ubuntu/GCC 是正确的。您可以使用类似的方法查看其他系统。
标签: c