2015-04-03 65 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