0
我的代码是:如何链接c宏中的加号或减号?
#define CHECK(x) if((x)==100)printf("%s = 100\n",#x);
#define C9(x) CHECK(x##9);CHECK(x##PLUS##9);CHECK(x##MINUS##9);
#define PLUS +
#define MINUS -
int main(){
C9(123-45-67+8);
return 0;
}
宏扩展到这个(我补充一些\ n使代码可读性):
int main(){
if((123-45-67+89)==100)printf("%s = 100\n","123-45-67+89");;
if((123-45-67+8PLUS9)==100)printf("%s = 100\n","123-45-67+8PLUS9");;
if((123-45-67+8MINUS9)==100)printf("%s = 100\n","123-45-67+8MINUS9");;;
return 0;
}
,预计扩大到这一点:
int main(){
if((123-45-67+89)==100)printf("%s = 100\n","123-45-67+89");;
if((123-45-67+8+9)==100)printf("%s = 100\n","123-45-67+8+9");;
if((123-45-67+8-9)==100)printf("%s = 100\n","123-45-67+8-9");;;
return 0;
}
如何做到这一点? 感谢
为什么第二,如果有两个分号';'和第三一个有三个? – Mike
因为我在每个宏中添加了分号';'.. – zh19970205
您是否曾经将PLUS更改为其他操作符? (这是一个非常非常糟糕的主意!)如果没有,为什么不使用这些符号,而是对代码进行混淆? – Olaf