PROTO (PROCDESC)

プロシージャのラベルとプロトタイプを宣言します。「PROTO」の代わりに「PROCDESC」と記述しても同じです。

構文    label    PROTO    [type] [lang] [scope] [USES regs,...] [args,...]
例    FUNC1    PROTO    NEAR C, ARG1:WORD, ARG2[3]:DWORD

構文の各要素の意味は、PROC 文と同じです。

label は PUBLIC 宣言されます。ただし、label がソースファイル内で定義されていない場合は、EXTRN として定義されます。この label の扱いは EXTERNDEF 文と同じです。

PROTO 文でプロシージャの形式を宣言することにより、プロシージャの定義形式と呼び出し形式が矛盾していないことを確認できます。PROTO 文で宣言した label を持つ PROC および INVOKE 文の形式が PROTO 文と矛盾していると、警告が発生します。

PROTO 文を記述した場合、同じ label を持つ PROTO、INVOKE、および CALL 文では、引数のタイプ、言語モデル、スコープ、退避レジスタを省略できます。省略した部分については、PROTO 文の指定が自動的に使用されます。

[目次]