C语言断言assert函数

/*使用断言测试*/
#ifdef DEBUG
/*处理函数原型*/
void Assert(char * filename, unsigned int lineno);
#define ASSERT(condition)\
do{   \
    if(condition)\
       NULL; \
    else\
       Assert(__FILE__ , __LINE__);\
}while(0)
/*不使用断言测试*/
#else
#define ASSERT(condition) NULL
#endif
void Assert(char * filename, unsigned int lineno)
{
	/*此处按照自己需求修改*/	
    fflush(stdout);
    fprintf(stderr,"\nAssert failed: %s, line %u\n",filename, lineno);
    fflush(stderr);
    abort();
}

/*测试*/
void Test(unsigned char *str)
{
    ASSERT(str != NULL);
    /*函数处理代码*/
}
int main(void)
{
    Test(NULL);
    return 0;
}

以上代码引用源


版权声明:本文为yxq1280257646原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。