在循环中使用定义(c 编码)

use definitions in loop (c coding)

我有这样的定义

#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
}

您不能这样做,因为 define(宏)值由预处理器替换,这是在编译器构建您的代码之前完成的。

您必须使用 ifelse 语句在 switch 中进行检查。

如果你改变

#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
    } 
}

你应该语法没问题。