新規命令を登録する
#deffunc p1 p2 p3,…
p1 : 割り当てられる命令の名前 p2 p3~ : パラメータータイプ名・エイリアス名
ユーザーによる新規命令を登録します。 p1に新規命令の名前を、p2以降に呼び出しパラメータタイプを指定します。 #deffunc命令で定義した名前をスクリプト内で命令として使用することが可能になります。 新規命令は、#deffuncで指定された行以降が実行される内容になります。 実行は gosub命令と同じくサブルーチンジャンプとして行なわれ、return命令でもとの実行位置に戻ります。 例 : #deffunc test int a mes "パラメーター="+a return 追加された新規命令ではパラメータを受け取ることができるようになります。 それぞれのパラメータには、パラメータタイプとエイリアス名の指定が可能です。指定するパラメータタイプには以下のものがあります。 int : 整数値 var : 変数(配列なし) array : 変数(配列あり) str : 文字列 double : 実数値 label : ラベル local : ローカル変数 エイリアス名は、渡されたパラメーターの内容を示すもので、変数とほとんど同じ感覚で使用することができます。 varとarrayの使い分けには注意が必要なほか、 ローカル変数を示すlocalタイプは特殊な用途となります。 詳しくは、プログラミングマニュアル(hspprog.htm)のモジュール項目を参照してください。 特殊な用途として、パラメータータイプの替わりに「onexit」を記述することで、クリーンアップ命令として登録することができます。クリーンアップ命令は、HSPスクリプト実行の終了時に自動的に呼び出されます。 例: #deffunc 名前 onexit モジュールによって機能を拡張した場合などにその後始末、システムやメモリの解放などを行なうために利用することができます。 新規命令の名称は、通常すべてのモジュール空間、グローバル空間で共有されます。 ただし、local指定の後に名称を指定した場合は、モジュール固有のものとして扱われます。 例 : #module user #deffunc local test int a mes "パラメーター="+a return #global test@user 5 これは、モジュール内でのみ使用される命令を定義する場合などに使用することができます。 local指定により登録された名称は、必ず「名称@モジュール名」の形式で呼び出す必要があります。
| #global | モジュールの終了 |
| #module | モジュールの開始 |
| #modfunc | 新規命令を割り当てる |
| #modcfunc | 新規関数を割り当てる |
| #modinit | モジュール初期化処理の登録 |
| #modterm | モジュール解放処理の登録 |
| mref | 特殊なメモリを変数に割り当てる |
| バージョン | 3.5 |
| 作成日 | 2017/09/13 |
| 著作者 | onitama |
| URL | http://hsp.tv/ |
| 備考 | ver3.5標準命令 |
| タイプ | 内蔵命令 |
| グループ | プリプロセッサ命令 |
| 対応環境 |
|
| 移植のヒント | HSPLet時、引数の型は str/int/double/var/array のみサポートされています。
local などは指定できません。 |
| hs ファイル | hsphelp\i_prep.hs |