C Präprozessor zur Aufteilung von „int x“ in int & x

Ich muss in der Lage sein, Folgendes zu bekommen:

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

verursachen

MY_MACRO(int x,char *z) 

kompilieren als

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

oder es wäre nicht das Ende der Welt, wenn es sich wie folgt zusammensetzt:

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

oder sogar das wäre auch in Ordnung: (ich kann MY_OTHER_MACRO codieren, um mit beiden Ergebnissen zu arbeiten)

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

alternativ, wenn es eine Möglichkeit gibt, die durch Leerzeichen getrennten Token zu zählen (und davon auszugehen, dass "*" ein separates Token ist, kann ich auch damit arbeiten - z. B. 2 vs 3), werden Token in der Regel durch Kommas getrennt Ich kenne. Gibt es eine Möglichkeit, ein anderes Zeichen zu verwenden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage