ldjhust

工欲善其事 必先利其器

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

assert仅在调试版本中起作用,而不会存在于release版本。assert仅用于检查确实不可能的条件,这只对程序的调试有帮助,但不能代替运行时的逻辑检查,也不能代替对程序可能产生的错误的检测。

 1 int foo(int a[], size_t n)
 2 {
 3     assert (a != NULL);  // 仅在debug版本中对程序调试有帮助,可以更快的定位错误的地点
 4 
 5     if (NULL == a)
 6     {
 7         // 这个检查也是不可丢弃的,防止在release版本中出现空指针而得不到有效处理的情况
 8         return (-1);
 9     }
10 
11     // do some work
12 
13     return (0);
14 }

 

posted on 2013-05-18 09:36  ldjhust  阅读(199)  评论(0编辑  收藏  举报