3
爲什麼在符號表中爲本地靜態變量的名稱添加了一個數字?符號表本地靜態變量名
int main(void) {
static stat_var = 20;
return 0;
}
8:0000000000000008 4 OBJECT本地默認2 stat_var 0.1604
爲什麼在符號表中爲本地靜態變量的名稱添加了一個數字?符號表本地靜態變量名
int main(void) {
static stat_var = 20;
return 0;
}
8:0000000000000008 4 OBJECT本地默認2 stat_var 0.1604
可以存在具有相同名稱的許多局部靜態變量(在不同的函數)。編譯器給他們明確的後綴以避免潛在的名稱衝突。
作爲跟進,你會知道這個數字是如何產生的? – Akeel 2013-02-16 18:33:12
@Akeel它是編譯器特定的。我的猜測是,它們是由詞法分析器生成的每個範圍。從符號看,它是你正在看的gcc實現,所以源應該是可用的。 – Plynx 2013-02-16 22:35:23