跳转到内容

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
语言参考

华夏公益教科书