分享

C/C++中assert的用法 : 陈志伟博客

 fjc_Embeded 2011-08-11

C/C++中assert的用法

2010-12-17 by zhiwei  

assert宏能测试传入表达式的真假值,当表达式为真(true),则不会有任何反应;当表达式为假(false),则函数将输出错误信息,并中断程序的执行。

assert宏可以用来判断某表达式的真假值,并在程序执行的过程中实时响应错误信息,因此在程序开发的过程中,常常被用来作程序纠错的工具,当程序开发完成,只需要在加载头文件前面,利用#define指令定义NDEBUG这个关键字,则所有assert都会失效,源程序不需做任何修改。

当传入的表达式为真,则assert不会有任何响应;当表达式为假时,assert函数会显示出发生错误的表达式、源代码文件名以及发生错误的程序代码行数,并调用abort函数,结束程序执行。

今天在群里讨论了一下关于assert用法的问题,自己现在算是明白了。

代码如下:

1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            
int main()
            {
            int i=0;
            while(i!=9)
            {
            i+=2;
            assert(i++);
            }
            return 0;
            }

问,这个循环了多少次?

注意:assert is designed to capture programming errors, not user or running errors。所以不要滥用assert。诸如assert(i++)之类的用法毫无意义。

关于assert的说明在这里:http://www./reference/clibrary/cassert/assert/

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多