一组有利于编码和调试的宏
#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;
}