#ifdef...#else...#endif

進行條件式編譯。

格式
#ifdef識別碼 ...用於條件式編譯的原始碼
[#else]...用於偽條件的原始碼
#endif

參數

識別碼
是編譯#ifdef和#else或#endif之間的原始碼的使用者定義關鍵字。此識別碼作為編譯條件發揮作用。

說明
​#ifdef...#else...#endif用於對選擇的原始碼進行條件式編譯。是否編譯的條件取決於識別碼。首先,#ifdef用於檢查是否依目前#define定義指定的識別碼。#可省略#else陳述式。

[已定義時] 若使用#else陳述式,則編譯#ifdef和#else之間的陳述式。#若未使用#else陳述式,即編譯#ifdef和#endif之間的陳述式。

[未定義時] 若使用#else陳述式,則編譯#else和#endif之間的陳述式。#若未使用#else陳述式,則不編譯並直接跳過#ifdef和#endif之間的陳述式。

參照
​#define、#ifndef

#ifdef範例
以下為使用#ifdef的程式範例。在以下範例中,可依照有無#define DEBUG模擬命令定義,來控制是否輸出變數A$的值。倘若在此範例記載的部分之前在原始碼中使用#define DEBUG模擬命令,則編譯Print A$的行,並在執行程式時進行輸出。然而,無論#define DEBUG模擬命令如何,皆輸出字串 「The End」。

'偵錯模式時,會對下一行進行非註解處理
' #define DEBUG

Input #1, A$
 #ifdef DEBUG
    Print "A$ = ", A$
 #endif
Print "The End"