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