我需要能够得到如下: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与任一结果工作)
MY_OTHER_MACRO(int,x);
MY_OTHER_MACRO(char,z);
可替代地,如果有计数由空格分隔令牌的某种方式(并假定“*”是单独的标记,我也可以使用它 - 例如2 vs 3) 通常,令牌由逗号分隔,据我所知。有什么方法可以使用另一个角色?
不太可能。宏可以加入,而不是分开。 – zch