1.自定义Log函数
//自动换行版本
void Logn(const char* format,...);
//非自动换行版本
void Log(const char* format,...);
//自动换行版本
//使用举例{ Log("%s%d%s","sfnilkf",1,"fsdf"); }
void Logn(const char* format,...)
{
if(!Macros::debug)
return;
char buff[1024];
va_list list;
va_start(list,format);
vsnprintf_s(buff,1024,format,list);
va_end(list);
printf("%s\n",buff);
}
//非自动换行版本
void Log(const char* format,...)
{
if(!Macros::debug)
return;
char buff[1024];
va_list list;
va_start(list,format);
vsnprintf_s(buff,1024,format,list);
va_end(list);
printf("%s",buff);
}
2.自定义Assert断言宏定义
#define ASSERT(condition,msg) do{ \
if(!(condition)) \
Logn("Assert failed! [%s] ",msg);\
}while(0)
void myassert(char *s,char * filepath,int num )
{
cout<<s<<" "<<filepath<<" "<<num<<endl;
}
#define ASSERT(c) if(c) 0;else \
myassert(#c,__FILE__,__LINE__);