先来看两段代码:

// main.cpp
#include <stdio.h>

#define MZ_PRINT(n) printf("x"#n"=%d", x##n);
int main()
{
int x1 = 1;
MZ_PRINT(1);

return 0;
}



这段代码在经过g++ -E预编译以后:

... // 头文件相关内容
int main()
{
int x1 = 1;
printf("x""1""=%d", x1);;

return 0;
}


未完待续。。。

等查阅相关文档后再解释。