昨日突然疑問がありました。私は長い間Cでプログラミングしてきました。私の質問はこれです:
変数があると仮定します
static uint32_t count = 0;
この変数はデータセグメントに格納する必要があります。この例では、データセグメントが0x08000000
プロセスの4GB仮想メモリ空間のオフセットで開始すると仮定します。
オフセットの後のどこかに0x08000000
、値0の変数'count'用に予約された4バイトがあることを知っています。
私の質問は、メモリ内のこの4バイトの値が、名前「count」とタイプ「uint32_t」にどのように関連付けられているかです(または、たとえば、長さが4バイトで、長さが6バイトではないという事実)。
以下の回答から、マッピング情報はに保存されているようです。"symbol table"
メモリ内の最終的な実行可能ファイルの一部である必要があることを示唆しているようです。その場合、シンボルテーブルはどこに保存されますか?それはコード/テキストセグメントにありますか?