#ifndef...#endif
進行條件式編譯。
格式
#ifndef識別碼 .. 用於條件式編譯的原始碼
[#else]... 用於真條件的原始碼
#endif
參數
- 識別碼
- 是使用者定義的關鍵字。未定義時,則編譯#ifndef到#else或#endif為止的原始碼。此識別碼作為執行編譯的條件發揮作用。
說明
此命令也稱之為「若未定義」命令,負責檢查與#ifdef相反的條件。#ifndef...#else...#endif用於對選擇的原始碼進行條件式編譯。#可省略#else陳述式。
[已定義時] 若使用#else陳述式,則編譯#else和#endif之間的陳述式。#若未使用#else陳述式,則不編譯#ifndef和#endif之間的陳述式。
[未定義時] 若使用#else陳述式,則編譯#else和#endif之間的陳述式。#若未使用#else陳述式,即編譯#ifndef和#endif之間的陳述式。
注意
#ifdef和#ifndef的差異
#已定義識別碼時,#ifdef用於編譯指定的原始碼。另一方面,未定義識別碼時,#ifndef用於編譯指定的原始碼。
參照
#define、#ifdef
#ifndef範例
以下為使用#ifndef的程式範例。在以下範例中,可依照有無#define NODELAY模擬命令定義,來控制是否輸出變數A$的值。倘若在此例記載的部分之前在原始碼中使用#define NODELAY模擬命令,則在編譯之時,Wait 1的行不會與此程式原始碼的其它部分一起編譯。倘若在此範例記載的部分之前不使用#define NODELAY模擬命令(換句話說,若未定義NODELAY),則編譯Wait 1的行,並在隨後被程式執行。無論#define NODELAY模擬命令如何,皆輸出字串「The End」。
'延遲時,會對下一行進行註解處理
#define NODELAY 1
Input #1, A$
#ifndef NODELAY
Wait 1
#endif
Print "The End"