我有像
这样的定义#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
}
答案 0 :(得分: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
}
}
你应该语法好。
答案 1 :(得分:0)
您不能这样做,因为define
(宏)值被预处理器替换,这是在编译器构建代码之前完成的。
您必须使用switch
和if
语句对else
进行检查。