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