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;

 

 

 

 

 

转载请注明出处,谢谢!

 

 


 

 

posted @ 2010-08-13 15:11  温子祺  阅读(649)  评论(0编辑  收藏  举报