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