-
#If
#If PreprocessorExpression ... [ #Else If PreprocessorExpression ... ] [ #Else ... ] #Endif |
#If ... [#Else ...] #Endifプリプロセッサ指令は、代替コードセグメントの条件付きコンパイルを許可します。
PreprocessorExpressionは、次のものを含むことができる基本的なブール式です。
- プリプロセッサブール定数(下記参照)。
- 文字列と比較したプリプロセッサ定数(下記参照)。
- OrキーワードまたはAndキーワード。
- 部分式をグループ化するための括弧。
許可されている唯一のプリプロセッサー定数は次のとおりです。
Constant |
Value | Comparison operators allowed |
---|---|---|
System |
The operating system. | = , <> |
Architecture or Arch |
The CPU architecture. | = , <> |
Version or Gambas |
The compiler version. | = , <> , < , <= , > , >= |
Debug |
If debugging information is enabled. | None |
Exec |
Whether the -x switch was passed to the compiler (see discussion below). |
None |
True |
The True value. | None |
False |
The False value. |
None |
プロジェクトをコンパイルするときにコマンドラインgbc3 -xを使用して、Execプリプロセッサ定数を定義できます。 IDEは、実行可能アーカイブ(.gambasファイル)を作成する場合に限り、-xをコンパイラに渡します。 プロジェクトは常にIDEを介してコンパイルされるという前提の下で、Execを使用して条件付きでコードを実行可能アーカイブにコンパイルできます。 このメソッドの制限については、このスレッドを参照してください。
Examples
'Print'行は、実際には次のコードでコンパイルされます。
Public Sub Main()
#If System = "Linux"
#If Architecture = "x86_64"
Print "Linux 64 bits"
#Else
Print "Linux 32 bits"
#Endif
#Else If System = "FreeBSD"
Print "FreeBSD ?"
#Else
Print "Other !?"
#Endif
End
オペレーティングシステムまたはCPUアーキテクチャに基づく条件付きコンパイルを使用して、コンパイル時に使用されたオペレーティングシステムまたはCPUアーキテクチャに固有の実行可能ファイルを作成します。
![]() |
これは通常良い考えではありませんので、実行時にオペレーティングシステムやCPUアーキテクチャをできるだけ検出するようにしてください。つまり、コード内の System.Family とSystem.Architecture の値をテストします。 |
コメント
最新を表示する
NG表示方式
NGID一覧