#define
用於以指定字串取代識別碼的定義。
格式
#define 識別碼 [(參數 [, 參數])] 取代字串
參數
- 識別碼
- 是用於省略字串參數的關鍵字。如下所述為識別碼的規則。
以字母開頭並用英文數字和下劃線( _ )建立。
識別碼不可使用空格和定位字元。
- 參數
- 指定用於取代字串的1個或多個變數,然後提供如同巨集指令的動態定義機制。在#define命令中,最多可使用8個參數。請用逗號分隔每個參數,然後將參數清單放在括弧內。
- 取代字串
- 是程式被編譯時用於取代識別碼的字串。如下所述為取代字串相關規則。
在取代字串中可使用空格和定位字元。
連同陳述式一起使用的識別碼不可用作取代字串。
一旦使用註解記號「'」,其後續字元則被判斷為註解,而不包含在取代字串中。
可省略取代字串。此時,已指定的識別碼會以空白或NULL字串取代。藉此,該識別碼會在程式中被刪除。
說明
使用#define命令在程式中取代已指定的識別碼。每發現一次指定的識別碼,都以取代字串取代並進行編譯。然而,原始碼本身並不是取代字串,而是以包含識別碼的型態被保留下來的。這是因為在讀取代碼本身時,讀取識別碼比起讀取以字串取代的代碼更為容易的緣故。
已定義的識別碼可搭配#ifdef或#ifndef命令,作為是否編譯的條件使用。
若指定參數,識別碼便可用作巨集。
注意
#若將#define用於變數宣告或標籤取代,則會發生錯誤。
請注意,若為了變數宣告而使用#define命令,則會發生錯誤。
參照
#ifdef、#ifndef
#define範例
'偵錯模式時,會對下一行進行非註解處理
' #define DEBUG
Input #1, A$
#ifdef DEBUG
Print "A$ = ", A$
#endif
Print "The End"
#define SHOWVAL(x) Print "var = ", x
Integer a
a = 25
SHOWVAL(a)