2013-07-16 49 views
3

我想你可以添加代碼,這將得到執行僅在2個方面同時宣佈這樣說:使用或中使用#ifdef來

#ifdef X 
#ifdef Y 

//code to execute 

#endif 
#endif 

我不知道是否有執行代碼,如果至少X的方式或Y被宣佈(也考慮異或),如:

#ifdef X or #ifdef Y 

// code 

#endif 

+0

,如果你想你可以忽略括號:'#如果定義X ||定義Y',不要忘記endif –

回答

18

使用defined

#if defined(X) || defined(Y) 
+2

所以我觀察到我甚至可以使用^作爲排他或。 – kaspersky

+0

有趣,不知道,謝謝你的發現。 –

+0

@ gg.kaspersky這可能是因爲'defined(X)'會擴展爲整數1或0,所以在技術上任何使用整數類型的操作符都可以在這裏工作。你甚至可以通過'#if defined(X)+ defined(Y)'來獲得「或」效果。 – Rapptz

3

您可以使用operator||這樣的:

#if defined(X) || defined(Y) 
1

你可以這樣做:

#if defined(X) || defined(Y) 
... 
#endif 
0

你需要說:

#if defined(X) || defined(Y) 

以下2種形式是等價的:

#ifdef identifier 
#if defined identifier 
相關問題