#define mytype __mytype
#define f1(in)\
call##in
f1(mytype)
Doing gcc -E file.c
outputs callmytype
.
Adding a new macro in between changes the output:
#define mytype __mytype
#define f1(in)\
call##in
#define f2(in)\
f1(in)
f2(mytype)
outputs call__mytype
.
I'm guessing the pre-processor doesn't replace mytype
with __mytype
when it's being passed as a parameter? Parameters are matched as is without a change?