ASSERT()这个宏到底是干什么的?看很多别人写的C/C++代码经常用这个宏?到底有什么用?我去掉这些代码,好像程序照样也能运行啊,为什么还要写这个呢?有大佬帮忙回答吗?

上传的附件
你的回答被采纳后将获得: 8点积分 (将会扣除手续费1点积分。)

keyboard_arrow_left上一篇 : 如何避免头文件被重复包含? malloc/free与new/delete有什么区别? : 下一篇keyboard_arrow_right

3个回答

Foooooooood
2019-01-08 08:49:46

使用断言

assert()宏是用于保证满足某个特定条件,用法是:

  1. assert(表达式);

如果表达式的值为假,整个程序将退出,并输出一条错误信息。如果表达式的值为真则继续执行后面的语句。

使用这个宏前需要包含头文件assert.h,例如

  1. #include <stdio.h>
  2. #include <assert.h>
  3. void main()
  4. {
  5. float a,b;
  6. scan("%f %f",&a,&b);
  7. assert(b!=0);
  8. printf("%f\n",a/b);
  9. }

以上的程序要计算A/B的值,因此要求b!=0,所以在程序中使用了assert()用于确保b!=0,如果b==0,则程序会退出。

不说8163
2019-01-14 15:31:08

对于初学者,可以直接无视ASSERT(),这些是调试用的代码,本身对代码功能无任何影响。

Resurgam
2019-01-22 09:36:08

你可以直接理解成一个 if 判断语句,满足判断条件的话,就直接提示并退出程序

精彩评论

eject