我正在尝试做这样的事情......
#define INPUT (x = 3, y = 5)
#define MATH(add) ((add == 1) ? (INPUT.x + INPUT.y) : (INPUT.x - INPUT.y))
void main (void)
{
int add = MATH (1);
int subs = MATH (0);
}
基本上我想简化这个......
#define x 3
#define y 5
#define MATH(add) ((add == 1) ? (x + y) : (x - y))
void main (void)
{
int add = MATH (1);
int subs = MATH (0);
}
这可能在 C 某种程度上可能吗?
答案 0 :(得分:2)
既然你想做如此糟糕的cpp药物,这里有一些值得思考的东西:
#include <stdio.h>
#define x 3
#define y 5
#define x1 +
#define x0 -
#define MATH(a) x x##a y
int main(void) {
int add = MATH(1);
int subs = MATH(0);
printf("add=%d, sub=%d\n", add, subs);
return 0;
}