That may be really simple but I’m unable to find a good answer.
How can I make a macro representing first a certain value and then a different one?
I know that’s nasty but I need it to implicitly declare a variable the first time and then do nothing.
This variable is required by other macros that I’m implementing.
Should I leverage “argument prescan”?
The thing you need to know is the fact I’m generating the code:
#define INC_X x++ //should be declared if needed to
#define PRINT_X printf("VALUE OF X: %d\n", x)
int func() {
[...]
INC_X;
[...]
INC_X;
[...]
PRINT_X;
[...]
}
As far as I know, this is impossible. I know of no way for the expansion of a macro to control the way another macro — or itself — will be expanded after. C99 introduced _Pragma so that
#pragmathings can be done in macros, but there is no equivalent for#defineor#undef.