全局变量静态存储在内存中的哪个位置?

时间:2017-07-11 03:29:18

标签: c memory

在C中,全局变量存储在数据段中。但我不知道全局静态变量将存储在哪里?

static int num;   //where will this variable get stored in memory?
int main(){
   //code 

}    

2 个答案:

答案 0 :(得分:4)

这些变量可以存储在不同的地方,标准不要求任何特定的存储位置。根据情况,它们甚至可以存储在只读存储器中(如果没有修改)或根本不存储(如果不使用)。甚至不要求该位置需要固定(或单个)。

标准对存储的唯一要求是变量必须在函数调用中保持它的值。

然而,通常的方法是将这些与全局变量放在一起。静态变量与全局变量唯一不同的是符号的范围。但请注意,这只是一种可能性,我可以想象其他合理的解决方案。

要获得更精确的答案,您需要知道您正在使用的平台和工具链。

答案 1 :(得分:0)

它们存储在内存的数据段中。