zoukankan      html  css  js  c++  java
  • 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;

     

     

     

     

    转载请注明出处,谢谢!

     

     


     

  • 相关阅读:
    排查线上问题常用的几个Linux命令
    OAuth2简易实战(一)-四种模式
    程序员必备的网站推荐
    C++ sizeof
    C++ 求余运算符
    C++ mutable(可变的)
    C++ const_cast用法
    C++常变量和文字常量
    C++中 <iso646.h>头文件
    java-网络编程-使用URLDecoder和URLEncoder
  • 原文地址:https://www.cnblogs.com/wenziqi/p/1799044.html
Copyright © 2011-2022 走看看