我需要能夠得到如下: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