自定义的一些宏定义

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)

 

3、死循环

#define Q_FOREVER for(;;)
#define forever Q_FOREVER

 

4、函数相关

函数名 : __FUNCTION__

函数修饰 : __FUNCDNAME__

函数签名 : __FUNCSIG__

 

posted @ 2020-07-10 15:16  朱小勇  阅读(353)  评论(0编辑  收藏  举报