美文网首页
断言机制(assert)

断言机制(assert)

作者: Joe_HUST | 来源:发表于2018-02-24 15:52 被阅读0次

    一直很疑惑断言的使用机制,不清楚为什么在debug版本当中使用断言机制,而在release版本中要去掉断言
    参考网上一些说法,在这边总结一下:
    先给出一个示例程序:

    #define NDEBUG
    #include <assert.h>
    
    void *memcpy(char *dst, const char *src,size_t n)
    {
      //安全检查
        assert( (dst != NULL) && (src != NULL) );
        unsigned char *pdst = (unsigned char *)dst;
        const unsigned char *psrc = (const unsigned char *)
        //防止内存重复
        assert( !(psrc <=pdst && pdst < psrc+n));
        assert( !(pdst <=psrc && psrc < pdst+n));
        while(n--){
            *pdst++ = *psrc++;
        }
        return dst;
    }
    
    1. 断言正是用在条件永远不可能发生的地方。

    相关文章

      网友评论

          本文标题:断言机制(assert)

          本文链接:https://www.haomeiwen.com/subject/ccrzcxtx.html