2015-04-03 60 views
0

我試圖做這樣的事情:「ELIF」 在GCC:#elif指令沒有表達錯誤

#define RELEASE_TEST 

#if RELEASE 
    // code1 
#elif RELEASE_TEST 
    // code2 
#else 
    // code3 
#endif 

GCC聲稱約#elif: 「錯誤:#elif指令沒有表達」。

我不明白這個錯誤,因爲我向「elif」提供了「RELEASE_TEST」表達式。

如何讓我的代碼工作?

回答

2

RELEASE_TEST被定義,但沒有值,所以這擴大到#elif,這是無效的。

您可以使用#elif defined(RELEASE_TEST)來測試它是否被定義,或者#define RELEASE_TEST 1,這會導致該行擴展到#elif 1