Say you want to generate a matched list of identifiers and strings
enum { NAME_ONE, NAME_TWO, NAME_THREE }; myFunction(NAME_ONE, \"NAME_ONE\"); myFunction(N
For your second #define, you need to use the # preprocessor operator, like this:
#define myDefine(a) myFunc(a, #a);
That converts the argument to a string.