#if

数値からコンパイル制御

#if 数値式

解説

コンパイルのON/OFFを指定します。
#ifは指定した数値が 0ならば以降のコンパイル出力をOFFにしてコンパイル結果を無視します(プログラムとして実行されません)。
数値が0以外の場合は、出力がONとなります。
このコンパイル制御は、#endifが出るまでの区間を対象にします。
#if#ifdef#ifndefのいずれかには、#endifがペアで存在している必要があります。

例 :
	#if 0
	mes "ABC"       ; この部分は無視されます
	a=111           ; この部分は無視されます
	mes "DEF"       ; この部分は無視されます
	#endif

#ifの指定には式を使うことも可能なので、

例 :
	#define VER 5
	#if VER<3
	mes "ABC"       ; この部分は無視されます
	a=111           ; この部分は無視されます
	mes "DEF"       ; この部分は無視されます
	#endif

のような使い方もできます。計算式の記述および演算子の注意点などは、#const命令と同様です。
また、#if#endifのプロックを入れ子にすることも可能です。

例 :
	#ifdef SW
		#ifdef SW2
		mes "AAA"       ; SWとSW2が定義されている場合
		#else
		mes "BBB"       ; SWが定義されている場合
		#endif
	#endif

基本的にCやC++のプリプロセッサに近い使い方ができるようになっています。
プリプロセッサは、通常のコンパイルで自動的に適用されます。

関連項目

#elseコンパイル制御を反転
#endifコンパイル制御ブロック終了
#ifdefマクロ定義からコンパイル制御
#ifndefマクロ定義からコンパイル制御2
#define新規マクロを登録する
#constマクロ名の定数定義

情報

バージョン3.4
作成日2014/04/22
著作者onitama
URLhttp://hsp.tv/
備考ver3.4標準命令
タイプ内蔵命令
グループプリプロセッサ命令
対応環境
  • Windows 版 HSP
  • コマンドライン版 HSP
  • HSPLet
hs ファイルhsphelp\i_prep.hs