簡體   English   中英

用C語言存儲的標識符

[英]Identifiers in the C language where are they stored

只是感興趣而已。 我正在修改我對C早已被遺忘的生銹知識,並想知道在C中聲明的變量的標識符存儲在哪里?

例如,如果我在main中聲明以下char value1。

int main(){
char value1 = 'A';
  return 0;
}

我知道char將存儲在main的Stack Frame中的堆棧中。 可以說是否在像&value1這樣的value1上關閉了地址。 我們將得到類似0xF37012(一個假設數字)的信息。 這將是值所在的位置,但是標識符呢? 以及這與0xF37012有何關聯? 是在某個地方的煙囪中嗎? 還是所有標識符都存儲在某個全局表或列表中?

除非您專門為調試而編譯,否則不會存儲標識符。 如果在編譯時確實設置了可調試性選項,則將有與函數/堆棧框架/靜態存儲關聯的符號表提供這些映射。

除非生成調試信息,否則某些標識符將在編譯時進行優化。

暫無
暫無

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

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