【发布时间】:2011-04-12 21:27:14
【问题描述】:
为什么 M(0) 和 N(0) 有不同的结果?
#define CAT_I(a, b) a ## b
#define CAT(a, b) CAT_I(a, b)
#define M_0 CAT(x, y)
#define M_1 whatever_else
#define M(a) CAT(M_, a)
M(0); // expands to CAT(x, y)
#define N_0() CAT(x, y)
#define N_1() whatever_else
#define N(a) CAT(N_, a)()
N(0); // expands to xy
【问题讨论】:
-
Uhhh.... 你到底想在这里实现什么... 目的是什么?
-
我并不想实现任何目标,只是在做某事时注意到了这一点,我很好奇其中的原因。当我不明白某些事情时,我会很烦:)。
标签: macros c-preprocessor