Futurebasic/语言/参考/编译
外观
✔ 外观 ✔ 标准 ✔ 控制台
COMPILE [tickCount][,compileFlags]
虽然可以在源代码中放置您自己的编译语句,但最好通过在编辑器的首选项窗口中选择项目来实现。在源代码中放置COMPILE
语句将使编辑器中进行的大多数选择失效。
COMPILE
语句用于更改程序的编译方式。该语句是可选的:如果您使用它,它不应该在您的程序源代码中出现多次,除非可能是在COMPILE LONG IF
块的不同分支内。它是一个不可执行语句,因此您无法通过将其放入条件执行结构(例如LONG IF...END IF
)中来更改其效果。但是,您可以通过将其放入COMPILE LONG IF
块中,有条件地将其包含或排除在程序之外。
通常,COMPILE
语句是程序中的第一个语句。
tickCount
设置在操作系统调用之间发生的优选刻度数。
compileFlags
是以下描述的集合中选择的一个或多个符号常量名称(用空格分隔)的列表。compileFlags
也可以包含单个整数常量,该常量等于各个符号常量的总和。
标记 |
描述 | 默认值 |
|
在应用程序堆中为变量分配一个指针(仅在编译代码资源时适用)。 | 在应用程序堆中分配一个句柄。 |
_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¬ |
如果对 Toolbox 过程的引用之前没有CALL 关键字,则会生成错误。 |
CALL 关键字是可选的。 |
_ToolboxCall¬ |
在 Toolbox 过程引用中,CALL 关键字是可选的。这与默认值相同。 |
CALL 关键字是可选的。 |
以下示例告诉编译器为 MacsBug 生成程序标签和函数名称,并要求显式声明所有变量。如果代码用于应用程序,则忽略 Tickcount。
COMPILE 0, _MacsBugLabels _dimmedVarsOnly