跳轉到內容

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

華夏公益教科書