跳轉到內容

Futurebasic/語言/參考/compile long if

來自華夏公益教科書,自由的教科書

COMPILE LONG IF 語句

[編輯 | 編輯原始碼]

COMPILE LONG IF

[編輯 | 編輯原始碼]

✔ 外觀 ✔ 標準 ✔ 控制檯

COMPILE LONG IF 條件
   [語句塊1]
[COMPILE XELSE
   [語句塊2]]
COMPILE END IF

您可以使用 COMPILE LONG IF 語句有條件地將選定的程式碼行包含或排除在程式的編譯版本中。如果您需要維護程式的兩個(或更多)略有不同的版本,這很有用;COMPILE LONG IF 允許您在同一個原始檔中維護它們。

如果 COMPILE LONG IF 之後的條件計算結果為“true”或非零,則 語句塊1 中的語句將包含在編譯中,而 語句塊2 中的語句(如果有)將被編譯器忽略。如果條件計算結果為“false”或零,則 語句塊1 中的語句將被編譯器忽略,而 語句塊2 中的語句(如果有)將包含在編譯中。

條件 必須採用以下格式之一

  • constExpr
  • {DEF | NDEF} _符號常量
  • TRON [= _false]
  • cpu68K
  • cpuPPC
  • carbonLib
  • 以上任何一個列表,用“AND”或“OR”分隔。您也可以選擇用括號括住任何有效的子條件。

constExpr 是一個“靜態整數表示式”。靜態整數表示式是任何有效的表示式,它僅包含

  • 整數文字常量;
  • 先前定義的符號常量名稱;
  • 運算子(如 +、-、*、/、>、=);
  • 括號

(特別是,它不能包含變數,也不能包含函式引用。)如果您使用這種形式的 COMPILE LONG IF,則如果表示式的值為非零,則條件將計算為“true”。

_符號常量 代表符號常量名稱。DEF_符號常量 如果指示的常量先前已定義,則計算為“true”。NDEF_符號常量 如果指示的常量先前未定義,則計算為“true”。

條件 TRON 如果當前程式碼段已啟用除錯,則計算為“true”。條件 TRON = _false 如果當前程式碼段未啟用除錯,則計算為“true”。(有關更多詳細資訊,請參閱 <a href="tron.html">TRON</a> 語句。)

如果您使用關鍵字 cpu68K 作為條件,則如果當前編譯正在編譯成摩托羅拉 680x0(“68k”)機器碼,則它將計算為“true”。如果您使用關鍵字 cpuPPC 作為條件,則如果當前編譯正在編譯成 PowerPC 機器碼,則它將計算為“true”。

因為 COMPILE LONG IF 會導致行(包括非可執行行)被編譯器完全忽略,所以您可以使用它來控制諸如變數宣告、程式標籤、常量,甚至整個函式之類的東西。例如

COMPILE LONG IF _needBigArray
   DIM myArray&(3000)
COMPILE XELSE
   DIM myArray&(30)
COMPILE END IF

COMPILE LONG IF _dimensions = 3
   DEF FN Diagonal!(a!, b!, c!) = SQR(a!*a! + b!*b! + c!*c!)
COMPILE XELSE
   DEF FN Diagonal!(a!, b!) = SQR(a!*a! + b!*b!)
COMPILE END IF

注意
COMPILE LONG IF 塊可以巢狀到 16 級深度。

另請參閱

[編輯 | 編輯原始碼]

Beginassem; Tron
語言參考

華夏公益教科書