Possible Duplicate:
C Macros to create strings
I have a function which accepts one argument of type char*, like f("string"); 
If the string argument is defined by-the-fly in the function call, how can macros be expanded within the string body?
For example:
#define COLOR #00ff00
f("abc COLOR");
would be equivalent to
f("abc #00ff00");
but instead the expansion is not performed, and the function receives literally abc COLOR.
In particular, I need to expand the macro to exactly \"#00ff00\", so that this quoted token is concatenated with the rest of the string argument passed to f(), quotes included; that is, the preprocessor has to finish his job and welcome the compiler transforming the code from f("abc COLOR"); to f("abc \"#00ff00\"");
 
     
     
     
    