ホームページ >ウェブフロントエンド >CSSチュートリアル >静的再配置は正確にいつ行われるのでしょうか?
静的再配置が発生する具体的な瞬間は、プログラムがロードされるときです。静的再配置とは、プログラムの実行前に、プログラム内の絶対参照アドレスを実際の物理メモリ アドレスに変換するプロセスを指します。最新のオペレーティング システムでは、静的再配置はプログラムのロード時にリンカによって完了します。
具体的なコード例は次のとおりです。
#include <stdio.h> // 全局变量,需要进行静态重定位 int global_var = 10; // 静态函数,也需要进行静态重定位 static void static_func() { printf("This is a static function. "); } int main() { printf("Before relocation: "); printf("Global variable: %p ", &global_var); printf("Static function: %p ", &static_func); // 程序加载后进行静态重定位 // 在这里进行具体的重定位操作 printf(" After relocation: "); printf("Global variable: %p ", &global_var); printf("Static function: %p ", &static_func); return 0; }
上記のコードでは、グローバル変数 global_var
と静的関数 static_func
の両方が必要です。静的に再配置されます。 main
関数では、最初にこれら 2 つの変数と関数のアドレスを出力し、次にプログラムがロードされた後に特定の静的再配置操作を実行し、最後にこれら 2 つの変数と関数のアドレスを再度出力します。
静的再配置の具体的なプロセスはオペレーティング システムによって異なりますが、通常は次の手順が含まれます。
上記の手順を完了すると、プログラム内の絶対参照が実際の物理メモリ アドレスに正常に変換され、プログラムが正常に実行できるようになります。
静的再配置はプログラムのロード時に行われるため、プログラムの開始時に 1 回だけ行われることに注意してください。プログラムの実行中に、動的ロードおよびリンク操作が関与する場合、動的再配置の概念が関与する可能性があります。
以上が静的再配置は正確にいつ行われるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。