靜態變數是C 和C 中獨特的變數類型,它們儲存在可執行檔案的特定段落中以避免命名碰撞。在提供的程式碼範例中,儘管在不同的翻譯單元中具有相同的名稱“foo”和“bar”,但它們以其遞增的值獨立運作。這種獨立性提出了一個問題:這些靜態變數儲存在可執行檔中的哪裡?
要了解儲存位置,考慮靜態變數是否為零初始化至關重要。如果是,它們通常被放置在“.BSS”(由符號開始的區塊)段中。此段儲存未初始化的數據,預設設為零。例如,「foo = 1;」將會儲存在「.DATA」中。
同時,非零初始化的靜態變數被放置在「.DATA」段。該段包含初始化數據,例如“foo = 10;”。這些段的分離確保了沒有名稱衝突並允許高效的記憶體分配。
以上是C 和 C 可執行檔中靜態變數儲存在哪裡?的詳細內容。更多資訊請關注PHP中文網其他相關文章!