2015-05-22 39 views
-2

我有一個像利用定義

#define COLUMN1 1 
#define COLUMN2 2 
#define COLUMN3 a 
#define COLUMN4 b 

。定義我想在一個循環

for (int var = 0; var < 3; ++var) { 
    if(COLUMNvar) .... ; // var 
} 

我可以像下面使用它們:

int col[4]={COLUMN1, COLUMN2, COLUMN3, COLUMN4}; 
for (int var = 0; var < 3; ++var) { 
    if(col(var)) .... ; // var 
} 
+1

爲什麼不是數組? –

+0

我必須使用定義內存的考慮:) –

+0

你的意思是'#define COLUMN3'a''? –

回答

1

如果更改

#define COLUMN3 'a' 
#define COLUMN4 'b' 

,並使用像

int col[4]={COLUMN1, COLUMN2, COLUMN3, COLUMN4}; 
for (int var = 0; var < 4; ++var) 
{ 
    if(col[var]) 
    { 
     .... ; // var //do something 
    } 
} 

你應該語法沒關係。

0

你不能這樣做,因爲define(宏)值被預處理器替換,這是在編譯器構建代碼之前完成的。

您必須使用ifelse陳述在switch中進行檢查。