assert()语法讲解

来源:互联网 发布:js如何控制embed播放 编辑:程序博客网 时间:2024/05/17 04:44

使用方法:

assert (expression).

解释:

断言,当其中包含的表达式判断为假的时候,程序执行中断。

使用规则:

  1. 一般用于函数开头用于判断输入参数是否满足某种条件,和函数内部代码通常隔行,这样代码可读性更好。
  2. expression中只能包含一个判断条件,否则debug程序在此中断,我们无法判断是哪个条件不满足。
  3. assert()只在debug时起作用,release版本不执行assert().使用#define NDEBUG 可以使assert失效。这是assert()和条件判断的区别。
  4. c中ASSERT是宏定义,而C++中是函数
常见面试题目:

void* memcopy(void* dest, void* src, size_t cout)

{

//安全检查

assert((src != NULL) && (dest != NULL));

unsigned char *pdest = (unsigned char *) dest;

const unsigned char *psrc = (const unsigned char *) src;


//防止内存重复

assert(!((psrc <= pdest) && (pdest < psrc + count)))

assert(!((pdest <= psrc) && (psrc < pdest +count)))


while(count--)

{

*pdest = *psrc;

pdest++;

psrc++;

}

return pdst;

}


参考文章:http://blog.csdn.net/makenothing/article/details/23555073


0 0
原创粉丝点击