HSPには、デバッグモードで実行したとき、「_debug」というマクロが定義されます。
これを利用して、
とするのは一般的ですが、たとえばデバッグログを送りたい場合、
;通常 #ifdef _debug mes "デバッグ" #else mes "ノーデバッグ" #endif
という命令を作ることも考えられます。
;処理 デバッグログ表示命令 "デバッグログ" stop ;命令 #deffunc デバッグログ表示命令 str _ログ #ifdef _debug mes "デバッグ : " + _ログ #endif return
しかし、この場合、実行ファイルにした後、デバッグモードではなくても
「デバッグ判定命令 "デバッグログ"」は実行され、何もされずに返ってきます。
この処理は、引数として文字列を渡すので、わずかながら実行速度に影響すると考え、
としようとしました。
;マクロ #define デバッグ判定マクロ(%1) #ifdef _debug %c デバッグログ表示命令 %1 %c #else %c mes "ノーデバッグ" %c #endif ;処理 デバッグ判定マクロ "デバッグログ" stop ;命令 #deffunc デバッグログ表示命令 str _ログ mes "デバッグ : " + _ログ return
しかし、実行するとわかると思いますが、
デバッグモードの場合と、デバッグモードでない場合、両方が実行されてしまいます。
おそらく原因は、マクロで定義した「#ifdef _debug」が、
「_debug」を展開して「#ifdef 」←空白 となっていることだと思われます。
質問としましては、
デバッグモード時のみ実行される命令を、
ノーデバッグ時に負担をかけずに、
簡潔に書くにはどうしたら良いか。
です。
1番目の方法でも、いまどきのPCなら、負荷などミジンコ程度だとは思うので、
もし、毎回「#ifdef _debug」と「#endif」を書かなければならないようならば、
命令の最初と最後に記述する方法を取りたいと思います。
よろしくお願いします。