4

Why is there a number added to the name of a local static variable in the symbol table?

int main(void) {
    static stat_var = 20;

    return 0;
}

8: 0000000000000008 4 OBJECT LOCAL DEFAULT 2 stat_var.1604

4

1 に答える 1

6

(異なる関数間で)同じ名前のローカル静的変数が多数存在する可能性があります。コンパイラーは、潜在的な名前の衝突を避けるために、曖昧さを解消する接尾辞を付けています。

于 2013-02-16T05:27:16.003 に答える