私はこのようなマクロを持っています:
#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を定義することは可能ですか?
(実際のマクロは、ここに示されているよりも少し複雑です。マクロが悪であることはわかっています。)