【发布时间】:2015-07-08 13:12:08
【问题描述】:
我在命令行上定义我的例外:
-DEXCEPTION_1=\"first\" -DEXCEPTION_2=\"second\" -DEXCEPTION_3=\"third\"
我检查一个字符串:
except = 0;
#ifdef EXCEPTION_1
if (! strcmp(EXCEPTION_1, mystring))
{ except = 1;
}
#endif
#ifdef EXCEPTION_2
if (! strcmp(EXCEPTION_2, mystring))
{ except = 1;
}
#endif
#ifdef EXCEPTION_3
if (! strcmp(EXCEPTION_3, mystring))
{ except = 1;
}
#endif
if (except == 1)
{ // do something
}
else
{ // do something else
}
不用说,虽然这可行,但它也很丑陋、不灵活,并导致我的代码冗余。
有没有办法将字符串附加到预处理器宏变量?
我想得到这样的东西(问题当然是#append不存在):
#ifdef EXCEPTION_1 #append EXCEPTIONS if (! strcmp(EXCEPTION_1, mystring)) { except = 1; }
#ifdef EXCEPTION_2 #append EXCEPTIONS if (! strcmp(EXCEPTION_2, mystring)) { except = 1; }
#ifdef EXCEPTION_3 #append EXCEPTIONS if (! strcmp(EXCEPTION_3, mystring)) { except = 1; }
然后我可以在代码中使用EXCEPTIONS,它可以处理所有可能的异常排列。
换句话说,我想将一个字符串附加到一个宏变量 - 有可能吗?
【问题讨论】:
标签: c c-preprocessor