#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)