ASSERT宏-基于单片机编程开发
/*
---------------------------------------------------------------
文件名称:ASSERT.h
说 明:ASSERT宏
作 者:温子祺
创建时间:2010-08-06
联系方式:wenziqi@hotmail.com
博 客:http://www.cnblogs.com/wenziqi/
小 组:http://group.ednchina.com/2748/
官 网:www.smartmcu.com
---------------------------------------------------------------
*/
1:字符串打印函数
代码
/******************************************************
*文件名称:UARTPrintfAssertFail
*输 入:fmt 字符串
*输 出:无
*功能说明:串口 打印字符串
用于打印断言失败
*******************************************************/
void UARTPrintfAssertFail(CHAR *fmt, ...)
{
va_list ap;
CHAR string[256];
va_start(ap,fmt);
vsprintf(string,fmt,ap);
UARTPrintfString(string);
va_end(ap);
while(1);
}
2:字符替换变为ASSERT宏
代码
#define assert_fail UARTPrintfAssertFail
#define ASSERT(p) do{p ? (void)0:\
assert_fail("\r\nAssert fail at "#p" "__FILE__" Line %d\r\n ",__LINE__);\
}while(0)
3:测试演示
例1:ASSERT(1==2);
显示结果:
Assert fail at 1==2 main.c Line 126
例1:ASSERT(2==2);
显示结果:无显示,直接执行(void)0;
转载请注明出处,谢谢!