静的再配置のタイミングは、プログラムがメモリにロードされる前です。オペレーティング システムでは、実行可能ファイルがメモリにロードされるときに、実行可能ファイルに含まれる再配置情報に基づいて、プログラム内のアドレス参照を実際のメモリ アドレスに変更する必要があります。このプロセスは静的再配置です。
静的再配置は、アドレス空間の問題を解決することです。実行可能ファイルが実行されると、オペレーティング システムはそのファイルをメモリ内の場所にロードします。ただし、実行可能ファイル内のアドレス参照はファイル自体に対する相対的なものであるため、アドレスを再配置しないと、プログラムのメモリ上の位置とファイル内のアドレス参照が一致せず、正しく実行されません。
以下は、静的再配置のプロセスを示す簡単なサンプル コードです:
#include <stdio.h> int global_var = 10; int main() { int local_var = 20; printf("global_var address: %p ", &global_var); printf("local_var address: %p ", &local_var); return 0; }
この例では、グローバル変数 global_var
とローカル変数 ## を宣言します。 #local_var。
main 関数では、
& 演算子を使用してこれら 2 つの変数のアドレスを取得し、
printf 関数を通じて出力します。
以上が静的再配置が適切なのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。