跳转到内容

Futurebasic/语言/参考/编译

来自维基教科书,自由的教科书

COMPILE 语句

[编辑 | 编辑源代码]

✔ 外观 ✔ 标准 ✔ 控制台

COMPILE [tickCount][,compileFlags]

虽然可以在源代码中放置您自己的编译语句,但最好通过在编辑器的首选项窗口中选择项目来实现。在源代码中放置COMPILE语句将使编辑器中进行的大多数选择失效。

COMPILE语句用于更改程序的编译方式。该语句是可选的:如果您使用它,它不应该在您的程序源代码中出现多次,除非可能是在COMPILE LONG IF块的不同分支内。它是一个不可执行语句,因此您无法通过将其放入条件执行结构(例如LONG IF...END IF)中来更改其效果。但是,您可以通过将其放入COMPILE LONG IF块中,有条件地将其包含或排除在程序之外。

通常,COMPILE语句是程序中的第一个语句。

tickCount设置在操作系统调用之间发生的优选刻度数。

compileFlags是以下描述的集合中选择的一个或多个符号常量名称(用空格分隔)的列表。compileFlags也可以包含单个整数常量,该常量等于各个符号常量的总和。

标记 描述 默认值

_pointerVars (1)

在应用程序堆中为变量分配一个指针(仅在编译代码资源时适用)。 在应用程序堆中分配一个句柄。
_sysHeapVars (2) 在系统堆中为变量分配一个句柄(仅在编译代码资源时适用)。 在应用程序堆中分配一个句柄。
_macsBugLabels (4) 生成 MacsBug 用于显示程序标签和函数名称所需的信息。这对于调试是一个有用的功能,但会使您的编译代码略大。 不会生成 MacsBug 信息。
_strResource (8) 将程序中找到的所有字符串常量存储为 STR# 资源。 不会创建 STR# 资源。
_dimmedVarsOnly (32) 如果在变量显式声明为DIM语句之前遇到任何变量,则生成错误。 非数组、非记录变量不需要DIM(由代码中的出现隐式声明)。
_noRedimVars(64) 如果DIM语句包含在同一作用域中之前遇到的变量(可能在先前的DIM语句中),则生成错误。 任何包含之前遇到的变量的DIM都被忽略。
_dontOptimizeStr (256) 防止编译器在应用程序中创建 STR# 资源时删除重复的字符串。这仅在也设置了_strResource标记时适用。 编译器删除重复的字符串。
_ChgConfig (32768) 指示编译器在编译此程序时覆盖“首选项”对话框中指定的选项(参见下表)。 使用当前的“首选项”选项。
_IncludeCDEF (65536) 将自定义 CDEF 资源(用于日内瓦 9 点文本或窗口文本)添加到已编译的应用程序中。 不要添加资源。
_IncludeMDEF (262144) 将自定义 MDEF 资源(用于日内瓦 9 点菜单文本)添加到已编译的应用程序中。 不要添加资源。
_IncludeWDEF (524288) 将自定义 WDEF 资源(用于风窗式调色板)添加到已编译的应用程序中。 不要添加资源。
_ToolboxCall¬

  必需

(268435456)
如果对 Toolbox 过程的引用之前没有CALL关键字,则会生成错误。 CALL关键字是可选的。
_ToolboxCall¬

  不需要

(536870912)
在 Toolbox 过程引用中,CALL关键字是可选的。这与默认值相同。 CALL关键字是可选的。

以下示例告诉编译器为 MacsBug 生成程序标签和函数名称,并要求显式声明所有变量。如果代码用于应用程序,则忽略 Tickcount。

COMPILE 0, _MacsBugLabels _dimmedVarsOnly

另请参阅

[编辑 | 编辑源代码]

资源
COMPLIE LONG IF

华夏公益教科书