検索
[C]動的リンクとは
- M.R

- 2023年1月7日
- 読了時間: 1分
概要
前回、コンパイルとリンクについて説明しました。
今回は動的リンクについて説明します。
動的リンク
前回の説明では、リンクをすると関数のアドレスが決まり、関数呼び出しはそのアドレスへのジャンプになると説明しました。
この時、関数の定義コードが全てexeファイルとして一つにまとめられるものを静的リンクと呼びます。
一方、関数の定義コードがexeとは別のファイルに存在する場合を動的リンクと言います。
この別ファイルをdllファイルと呼びます。
動的リンクの場合、ジャンプ先の関数のアドレスは実行時に決まります。
このように関数の定義コードを分離しておくと、exeファイルをコンパイルし直さなくてもdllファイルを置き換えれば関数の中身を変えることができます(巨大なアプリケーションの一部の関数だけを修正したい場合などに有効です)。

まとめ
関数のコードが同じexe内にあり、ジャンプ先の関数のアドレスがリンク時に決定するのが静的リンク、関数のコードが異なるファイル内にあり、ジャンプ先の関数のアドレスが実行時に決定するのが動的リンクです。
![[C]コンパイルとリンク](https://static.wixstatic.com/media/90b712_569065324fdf4898bb183b7f8441865f~mv2.png/v1/fill/w_980,h_633,al_c,q_90,usm_0.66_1.00_0.01,enc_avif,quality_auto/90b712_569065324fdf4898bb183b7f8441865f~mv2.png)






コメント