[Top Page][Edit][Discussion][Edit History][All Pages][Recent Changes][->Japanese]

HSPのFAQ:#includeの動作が良く分からない

#includeにまつわる疑問をここで一気に解消してください。


基本動作

#includeは任意のテキストファイル名(相対パス、フルパスも可)を指定すると、記述した位置に指定したファイルの内容を挿入するプリプロセッサ命令(プリプロセス文)です。プリプロセッサについてはHSP用語辞典を参照。

  • a.hsp
            dialog "Hello, world"
    
  • b.hsp
    #include "a.hsp"
    mes "Hello, world"
    #include "a.hsp"
    

という二つのスクリプトがあるとき、b.hspをコンパイルするとプリプロセッサによってb.hspは次のスクリプトに一旦整形されてからコンパイルされます。

        dialog "Hello, world"
mes "Hello, world"
        dialog "Hello, world"

実際にはプリプロセッサを通った時点で命令や関数・変数などにはhspモジュール空間が追加されていたりインデントが削除されていたりします。 プリプロセッサの処理結果を見たい場合は、「#cmpopt ppout 1」を入れるとスクリプトファイルと同じフォルダの「hsptmp.i」というファイルに処理結果が出力されます。

プリプロセッサはファイル名が指定されると「カレントディレクトリ」->「(hsp3.exeのあるディレクトリ)\common\」の順番で探します。(*詳細はプログラミングガイドを参照すること)