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