只是感興趣。我正在修改我早已被遺忘的C的生鏽知識,並且想知道C在哪裏存儲聲明變量的標識符?C語言標識符在哪裏存儲
例如,如果我在main中聲明以下char值1。
int main(){
char value1 = 'A';
return 0;
}
我知道char將被存儲在堆棧中的堆棧中。可以說,如果我們在value1上做了一個地址,就像這個& value1。我們會得到像0xF37012(一個假設的數字)。這將是價值所在的位置,但標識符如何?以及這與0xF37012關聯如何?它在主要的地方是在堆疊起重機嗎?或者是否所有的標識符都存儲在某個全局表或列表中?
像'value1'這樣的名字是不需要的(因爲它是一個局部變量,而不是一個外部可見的名字),但是如果代碼是在啓用調試的情況下編譯的話,它們會保存在調試信息中。至少在程序鏈接之前,外部名稱(例如'main()')被保留,因爲鏈接器需要解析它們。 –