C Preprocesor do dzielenia „int x” na int & x

Muszę mieć możliwość uzyskania następujących informacji:

#define MY_MACRO(PARAM1,PARAM2) \
 MY_OTHER_MACRO(TYPENAME_OF(PARAM1),PARAMNAME_OF(PARAM1));\
 MY_OTHER_MACRO(TYPENAME_OF(PARAM2),PARAMNAME_OF(PARAM2));\

powodować

MY_MACRO(int x,char *z) 

skompilować jako

MY_OTHER_MACRO(int,x);
MY_OTHER_MACRO(char*,z);

lub nie byłby to koniec świata, gdyby został skompilowany jako:

MY_OTHER_MACRO(int,x);
MY_OTHER_MACRO(char,*z);

lub nawet byłoby to w porządku: (mogę kodować MY_OTHER_MACRO do pracy z dowolnym wynikiem)

MY_OTHER_MACRO(int,x);
MY_OTHER_MACRO(char,z);

alternatywnie, jeśli istnieje jakiś sposób liczenia tokenów oddzielonych białymi znakami (i załóżmy, że „*” jest oddzielnym tokenem, mogę też z tym pracować - np. 2 vs 3) zazwyczaj tokeny są oddzielane przecinkami, o ile wiem. czy jest jakiś sposób na użycie innej postaci?

questionAnswers(2)

yourAnswerToTheQuestion