-If

ページ名:-If
  • #If

#If PreprocessorExpression

...

[ #Else If PreprocessorExpression

... ]

[ #Else ... ] #Endif

#If ... [#Else ...] #Endifプリプロセッサ指令は、代替コードセグメントの条件付きコンパイルを許可します。
PreprocessorExpressionは、次のものを含むことができる基本的なブール式です。

  1. プリプロセッサブール定数(下記参照)。
  2. 文字列と比較したプリプロセッサ定数(下記参照)。
  3. OrキーワードまたはAndキーワード。
  4. 部分式をグループ化するための括弧。

許可されている唯一のプリプロセッサー定数は次のとおりです。

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.FamilySystem.Architecture の値をテストします。

 

 

 

 

 

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧