最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

再呼び出し可能なコード

再呼び出し可能なコードは複数のプログラムで同時に使用できる再利用可能なプログラミング ルーチンです。マルチスレッディングを使用して同時発生イベントを処理するオペレーティング システムやその他のシステム ソフトウェアは再呼び出し可能なコードを使用します。同時実行環境では、複数のスレッドやプロセスで静的データの読み込みと書き込みを同時に試行できます。したがって、永続データまたは静的データを使用するコードを共有するのは困難です。再呼び出し可能なコードには静的データは含まれません。呼び出し側のプログラムが状態変数を維持し、状態変数を関数に渡します。このため、再呼び出し可能ルーチンのコピーは、任意の数のスレッドやプロセスで共有できます。

次のような場合、再呼び出し可能なコードを生成します。

  • マルチスレッド環境でコードを配布する。

  • 異なるプロセスやスレッドに属している永続データをもつアルゴリズムを使用する。

  • 大きすぎてスタックに適合しない関数変数を使用するコードをコンパイルする。

再呼び出し可能なコードを指定しない場合、MATLAB® Coder™ は、次に対して静的に割り当てられたメモリを使用するコードを生成します。

  • 大きすぎてスタックに適合しない関数変数

  • グローバル変数

  • 永続変数

生成されたコードがこれらの変数に静的メモリ割り当てを使用する場合、再呼び出し可能なコードを必要とする環境に、生成されたコードは配布できません。静的メモリの割り当てサイズを調整できない場合は、生成されたコードに静的メモリ サイズのオーバーフローが発生する可能性があります。

再呼び出し可能コードを生成すると、MATLAB Coder は次の変数に入力データ構造体を作成します。

  • 大きすぎてスタックに適合しない関数変数

  • 永続変数

  • グローバル変数

その結果、これらの入力構造体にメモリを動的に割り当てることができます。動的メモリ割り当ての使用は、再呼び出し可能な環境でコードを配布できることを意味します。

関連するトピック