簡體   English   中英

靜態存儲在內存中的全局變量在哪里?

[英]Where are global variables which are static stored in memory?

在C語言中,全局變量存儲在數據段中。但是我不知道全局的靜態變量將存儲在哪里?

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

}    

這些變量可以在各種地方存儲,標准沒有規定任何特定的存儲位置。 根據情況,它們甚至可以存儲在只讀存儲器中(如果未修改)或根本不存儲(如果不使用)。 甚至不需要固定位置(或單個位置)。

標准對存儲的唯一要求是變量必須在函數調用之間保持其值。

但是,通常的方法是將它們與全局變量放在一起。 靜態變量和全局變量唯一不同的是符號的范圍。 但是請注意,這只是一種可能性,我可以想象其他合理的解決方案。

要獲得更精確的答案,您需要知道您使用的平台和工具鏈。

它們存儲在內存的數據段中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM