1、返回宏
#ifndef USE_QT_PRINT #define PRINTF_LOCATION() std::cout<<"ret in:" << __FILE__ << " at:"<<__LINE__ << std:: endl #else #define PRINTF_LOCATION() qDebug()<<"ret in:" << __FILE__ << " at:"<<__LINE__ #endif #define RET_VALUE_IF_NOT_EAQU(a,b,c) do { if(a!=b) { PRINTF_LOCATION(); return c; } } while (false) #define RET_VALUE_IF_EAQU(a,b,c) do { if(a==b) { PRINTF_LOCATION(); return c; } } while (false) #define RET_IF_NOT_EAQU(a,b) do { if(a!=b) { PRINTF_LOCATION(); return; } } while (false) #define RET_IF_EAQU(a,b) do { if(a==b) { PRINTF_LOCATION(); return; } } while (false)
2、获取当前代码位置
define FILE_NAME __FILE__ #define LINE_COUNT __LINE__ #define getCodeLocate() QString("error at %1 in %2.").arg(LINE_COUNT).arg(FILE_NAME)