私はリンクについて学んでいます..
私はcで次のコードを書き、gccを使用して.oを作成しました
int f()
{
static int x=0;
return x;
}
extern int z;
int g()
{
static int x=10;
return x;
}
static int y;
static int y=9;
int main()
{
return 0;
}
次に、これを .o にしました:
gcc begin.c -o begin.o
今、readelf を使用して symtab をチェックしたところ、z の記録がありませんでした....なぜですか?
また、gcc はどのようにして 2 つの 'y' を許可しますか?
.data セクションでは、2 つの「x」はどのように区別されますか?