#DEFINE ... #UNDEF 預處理指令
創建和釋放編譯期間所用的常量。
語法
#DEFINE ConstantName eExpression
...
#UNDEF ConstantName
參數
ConstantName
指定編譯期間所用的常量名。常量名必須是合法的 Visual FoxPro 常量名,第一個字元為字母或下劃線,其他字元可以是字母、數字、或下劃線,最長可達 254 個字元。為提高程式的可讀性和簡化調試過程,應對常量名使用大寫字母並遵循標準命名約定。
重要內容
請不要使用 Visual FoxPro 關鍵字作常量名。
要取消用 #DEFINE 定義的編譯期間常量,可使用 #UNDEF ConstantName。
eExpression
指定編譯期間所用常量的值。eExpression 可以是一個名稱或一個表達式。表達式的值可以是字元、數值、貨幣、日期、日期時間或邏輯值等。
重要內容
請不要在 eExpression 中使用系統記憶體變數。系統記憶體變數只有在運行時才具有值。
說明
#DEFINE 和 #UNDEF 預處理器命令在程式中用來定義和取消編譯期間所用的常量。用 #DEFINE 定義編譯期間所用常量,同使用記憶體變數相比,能夠減少記憶體消耗,簡化程式並增強程式運行性能。
要使用 #DEFINE 定義常量,應該用 ConstantName 給出常量名,並用 eExpression 指定它的值表達式。編譯程式時將執行文本替換,把程式中任何出現常量名的地方都用常量表達式替換過來。在程式中添加 #UNDEF 命令可以停止這種替換。
上述替換隻在定義常量的 #DEFINE 語句行與取消該常量的 #UNDEF 語句行之間發生。常量只在定義該常量的程式中有效。
如果 #DEFINE 語句放在表單的一個事件或方法過程中,則定義的編譯時間常量只在該事件或方法的過程中有效。要使得 #DEFINE 語句定義的編譯常量對表單中所有事件和方法過程都有效,請從“表單”選單中選擇“包含檔案”選單項,並指定一個頭檔案來包含 #DEFINE 編譯時間常量。
示例
#DEFINE ... #UNDEF 預處理器命令示例
下面的程式定義了一個名為 MAXITEMS 的編譯時間常量。該常量在 FOR ... NEXT 循環中用來顯示數值 1 到 10 。
#DEFINE MAXITEMS 10
CLEAR
FOR gnCount = 1 TO MAXITEMS
? gnCount
NEXT