我想弄清楚如何編寫一個宏,將一個變量名的字符串文字表示與變量本身一起傳遞給一個函數。如何使用宏參數作爲字符串文字?
例如給出以下函數。
void do_something(string name, int val)
{
cout << name << ": " << val << endl;
}
我想編寫一個宏,以便我能做到這一點:
int my_val = 5;
CALL_DO_SOMETHING(my_val);
這將打印出:my_val: 5
我試着做以下幾點:
#define CALL_DO_SOMETHING(VAR) do_something("VAR", VAR);
但是,正如您可能猜到的那樣,引號內的VAR不會被替換,而只是作爲字符串傳遞文字「VAR」。所以我想知道是否有辦法讓宏參數變成一個字符串字面本身。
你怎麼想使用這個? – chris