yeah, that would work in most cases

but I still need to know if it's possible to use have a define inside of a macro

what i want to do is something like this

#define macro(text)
_#define Blah array
_text
_#undefine Blah
_#define Blah array2
_text

that way i can do something like this

int x;
macro({
for(x=1; x<Blah[0]; x++) Blah[x] *=2;
somefunc(Blah[0]);
}) //yes, this does work, ive tried it already

without the macro I'd have to type it twice or put an extra load on the processor to loop it and change a pointer

what im actually doing is trying to optimize the code for an rpg battle system that im writing, and i found that i was writing most code twice

also, what do i do to specify a 2nd argument for a macro? would the above code still work with a 2nd argument if i had a , in there somewhere for some reason?