これら 3 つのバージョンの小さなプログラムを試してみたところ、興味深い結果が得られました。それぞれの場合のコンパイラの動作を理解するのを手伝ってくれませんか。
version 1.0
int A;
int A;
int A;
int main ()
{
return 0;
}
Result: Got compiled with one copy of A in BSS.
Version 2.0
int main ()
{
int A;
int A;
int A;
return 0;
}
Result: Failed to compile with complaining for re-declaration.
Version 3.0
int A;
int main()
{
static int A;
return0;
}
result: Compiled with two copy of A in BSS. one is A and another a.<some numeric tag>.