Chinaunix首页 | 论坛 | 博客
  • 博客访问: 139843
  • 博文数量: 35
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-16 22:30
文章分类

全部博文(35)

文章存档

2016年(2)

2015年(24)

2014年(9)

我的朋友

分类: LINUX

2015-01-14 16:18:43

定义一个打印函数错误的宏
    #define CHECK_FUNC_RET(func) \
        do { int err_code = E_PROP_UNKNOWN;         \
             if ((err_code = (func)) != E_PROP_OK) {                    \
                PrintError(err_code, __FUNCTION__, __LINE__); return err_code; } \
        } while(0)

void PrintError(int err_code, const char* func, int line)
{
    struct
    {
        int err_code;
        const char* err_name;
    }
    err_name_table[] = {
        {  E_UNKNOWN, "E_UNKNOWN" },
    };

    const char* err_name = NULL;

    for (unsigned int i = 0 ; i < sizeof(err_name_table) / sizeof(err_name_table[0]); ++i)
    {
        if (err_code == err_name_table[i].err_code)
        {
            err_name = err_name_table[i].err_name;
            break;
        }
    }

    if (err_name != NULL)
        fprintf(stderr, "Function check failed. %s:%d - %s\n", func, line, err_name);
    else
        fprintf(stderr, "Function check failed. %s:%d - %d\n", func, line, err_code);
}




阅读(1181) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~