#define smSTR2(x) #x
#define smSTR(x) smSTR2(x)
//该宏用于编译时提示哪里还没有完成,双击提示可以直接转到相关位置
#define smMSG(desc) message(__FILE__ "(" smSTR(__LINE__) "):" #desc "/n")
#ifdef _DEBUG
//该组宏用于调试时候输出一个变量名以及该值,点击提示可以直接转到相关位置
#define smTRACE(value,type) TRACE1(__FILE__"(%d):" #value "/n",__LINE__);/
TRACE2(__FUNCTION__" %s=%" #type "/n",#value, value)
#define smTRACEint(value) TRACE1(__FILE__"(%d):" #value "/n",__LINE__);/
TRACE2(__FUNCTION__" %s=%d/n",#value, value)
#define smTRACEfloat(value) TRACE1(__FILE__"(%d):" #value "/n",__LINE__);/
TRACE2(__FUNCTION__" %s=%f/n",#value, value)
#define smTRACEpoint(value) TRACE1(__FILE__"(%d):" #value "/n",__LINE__);/
TRACE2(__FUNCTION__" %s=%p",#value, value)
#define smTRACEchar(value) TRACE1(__FILE__"(%d):" #value "/n",__LINE__);/
TRACE2(__FUNCTION__" %s=%c/n",#value, value)
#define smTRACEstr(value) TRACE1(__FILE__"(%d):" #value "/n",__LINE__);/
TRACE2(__FUNCTION__" %s=%s/n",#value, value)
#else
#define smTRACE(value,type)
#define smTRACEint(value)
#define smTRACEfloat(value)
#define smTRACEpoint(value)
#define smTRACEchar(value)
#define smTRACEstr(value)
#endif
int main()
{
#pragma smMSG(main)
int i=10;
float f=1.234;
char ch='C';
char str[]="I love you CC";
smTRACE(i,d);
smTRACEint(i);
smTRACEfloat(f);
smTRACEchar(ch);
smTRACEstr(str);
smTRACEpoint(&i);
return 0;
}