如果我在 foo.c 中有以下代码
#define P(x) printf("%s\n", #x)
void main() {
P(3 == 4);
}
调用 gcc -E foo.c 将输出:
int main() {
printf("%s\n", "3 == 4");
}
请注意,# 运算符已将宏参数 x 的文字字符串化。但是,当我调用 /usr/bin/cpp 时,我得到以下...未正确扩展。
int main() {
printf("%s\n", #3 == 4);
}