1) 方便输出变量名和值 #
#define Print(x) cout<< #x <<”=”<<x<<endl;
int a = 10;
Print( a ); // a = 10
2) 跟踪方法调用及其参数传值
#define TRACE(ARG)cout<<#ARG<<endl;ARG
TRACE(for(int I =0; I <100;i++));
3) 连接变量名##
#define FIELD(a) char* a##_string; int a##_size
FIELD(one);
FIELD(two);