一组有利于编码和调试的宏

来源:互联网 发布:ubuntu 16 tty菱形乱码 编辑:程序博客网 时间:2024/05/08 21:45

一组有利于编码和调试的宏


#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;
}
0 0
原创粉丝点击