跳轉到內容

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

華夏公益教科書