my code is:

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

```

the macro expand to this(I add some \n to make code readable):

```
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;
}

```

And it is expected to expand to this :

```
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;
}

```

How to do it ?
Thanks