Препроцессор C для разделения «int x» на int & x

Мне нужно иметь возможность получить следующее:

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

вызывать

MY_MACRO(int x,char *z) 

скомпилировать как

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

или это был бы не конец света, если бы он был составлен как:

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

или даже это будет хорошо: (я могу код MY_OTHER_MACRO для работы с любым результатом)

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

альтернативно, если есть какой-то способ подсчета токенов, разделенных пробелами (и предположим, что «*» является отдельным токеном, я тоже могу работать с этим - например, 2 против 3), как правило, токены разделяются запятыми, если я знаю. есть ли способ использовать другой персонаж?

Ответы на вопрос(2)

Ваш ответ на вопрос