Препроцессор 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), как правило, токены разделяются запятыми, если я знаю. есть ли способ использовать другой персонаж?