-1
在C++可以做這樣的事情C++宏與變量沒有括號
#define my_happy_macro(x) do_something_with(x)
或者也
#define $(x) do_something_with(x)
我想怎麼辦,不過,是像
#define $x do_something_with(x)
這樣我寫的時候
$x;
在我的代碼,預處理器替換它
do_something_with(x);
是否有可能做這樣的事情?
不,我可憐下一個將要維持這個怪物的人。 – 2014-12-19 00:29:12
不可能。 '$ x'是沒有特殊解析規則的單個標記;你爲什麼要這樣的東西呢? – 0x499602D2 2014-12-19 00:33:05
@ 0x499602D2:在標準的C++中,'$ x'不是一個單一的標記。它是一個由兩個預處理標記組成的序列,'$'(這是一個預處理標記,但不是有效標記),後跟'x'(一個標識符)。由於'$'不是標識符,宏定義'#define $ x do_something_with(x)'是無效的。作爲擴展名,gcc允許在標識符中使用'$'。 – 2014-12-19 02:41:10