我想要一個宏,它可以將一個變量的類型與另一個標記合併以創建一個新的標記。隨機例如:帶有標記的變量的合併類型
int var;
int make_token(var);
這將成爲:
int var;
int var_int;
我試着來定義,像這樣的宏:
#define make_token(x) x ## _ ## typeof(x)
但是,整個事情被擴展爲:
int var;
int var_typeof(var)
有沒有辦法實現這個機智HOUT必須在宏的參數中傳遞變量的類型?
我不這麼認爲。預處理器幾乎不知道語言本身。 –
我相信你可以用雙宏來做。 '#define type_macro(x)typeof(x)''#define make_token(x)x ## _ ## type_macro(x)'。嘗試一下,但不要聽我說,它的工作原理。 –
我發現術語'令牌'令人困惑,並且更喜歡'標識符'。 –