Next: 関数の定義
Up: 関数の宣言
Previous: 関数の宣言
require修飾子付き関数宣言
関数宣言をrequire修飾子付きで行うと,その関数が定義されている
ファイルを指定することができる。例えば,
void mg_main(), mg_sub1(), mg_sub2() require "mg.mm";
は,関数mg_main(),mg_sub1(),mg_sub2()
がファイルmg.mmで定義されていることを宣言する。この宣言により,
3個の中のどの関数が呼ばれても,自動的にファイルmg.mmが
読み込まれる。ファイルが1度読み込まれれば,別の関数が呼ばれても
mg.mmが再読み込みされることはない。
従来は,関数名とファイル名が一致しなければ,宣言された関数が呼び出されても
必要なファイルが自動的に読み込まれなかった。require修飾子を用いれ
ば関数名と異なる名前のファイルに関数を定義できる。例えば,
Matrix PoleAssignSISO() "poleasgn.mm";
によって,長い名前の関数PoleAssignSISO()を短い名前のファイル
poleasgn.mmに保存できるので, DOSのようにファイル名に
厳しい制限のあるOSでも,自由に関数名を決められる。
宣言されていて定義されていない関数が呼び出されると,その関数が定義され
ているファイルが,環境変数MATXINPUTSで定義されているディレクトリ群や
デフォルトmmファイルディレクトリから再帰的に検索される。
ファイルやディレクトリの数が多くなると検索に時間がかかるが,requrie
修飾子で関数が定義されているファイルを指定すれば,検索時間が短縮される。
例えば,
List bode(...) requrie "control/bode.mm";
によって,関数bode()は検索対象のディレクトリから相対パスが
control/bode.mmであるファイルに定義されていることが分かるので
短い時間で発見される。
Masanobu KOGA
平成10年8月19日