2010-02-20 105 views
15

有沒有辦法在宏中檢查數值相等?C宏:#if檢查是否相等

我要像做

#define choice 3 

#if choice == 3 
    .... 
#endif 

#if choice == 4 
... 
#endif 

不C宏有這樣的事情支持嗎?

+8

你的編譯器告訴你什麼? – Christoph 2010-02-20 22:15:35

+1

更好的是,教科書/參考書是怎麼說的? – 2010-02-20 22:55:39

回答

3

據我所知應該工作。你使用什麼編譯器?注:僅供參考,定義名稱通常用大寫字母表示!

#define CHOICE 3

18

另一種方式來寫你的代碼使用鏈式#elif指令:

#if choice == 3 
    ... 
#elif choice == 4 
    ... 
#else 
    #error Unsupported choice setting 
#endif 

注意,如果choice#defined,預處理器將其視爲具有價值0