2011-08-04 72 views
4

考慮下面的代碼片段:使用'defined'和'ifdef'?

#ifdef AAA && (defined BBB) 
... 
#endif 

GCC-4.5.2在這條線抱怨:在#ifdef指令結束

額外的令牌。

它是非法的ifdefdefined結合?

謝謝!

+0

什麼定義? –

回答

12

#ifdef需要一個標識符,相當於#if defined(identifier)

你需要,如果你有一個更復雜的表達式使用#if指令:

#if (defined AAA) && (defined BBB) // true if AAA and BBB are both defined 
#if AAA && (defined BBB)   // true if AAA is true and BBB is defined 
5

#ifdef只能在一個令牌工作。 如果你想使用一個以上然後寫

#if defined(AAA) && defined(BBB)