字符串化宏參數我有這樣一個宏:在一個多層次的宏調用
#define SHOW_EXPR(x) printf ("%s=%d\n", #x, (x))
它的工作原理:
#define FOO 123
int BAR = 456;
SHOW_EXPR(FOO+BAR);
這將打印FOO+BAR=579
預期。
現在我試圖定義調用SHOW_EXPR宏:
#define MY_SHOW_EXPR(x) (printf ("Look ma, "), SHOW_EXPR(x))
MY_SHOW_EXPR(FOO+BAR)
這將打印Look ma, 123+BAR=579
,這也是預期的,但是這不是我想要的。
是否可以定義MY_SHOW_EXPR,使其做正確的事情?
(實際宏比這裏稍顯複雜。我知道,宏是邪惡的。)
你想要什麼? –
@Steve Jessop:像'看上去媽,FOO + BAR = 579'會很好;) –