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 判断语句,满足判断条件的话,就直接提示并退出程序

精彩评论

  • 算法
    这是什么题目啊。。读了两遍都看不懂意思。。。尴尬,,ԾㅂԾ,,
    2019-09-05 19:04:39 thumb_up( 2 )
  • 请问机器学习怎么入门?
    对于机器学习的入门学习,我建议你在理论上使用西瓜书,然后实践可以参考机器学习实战,这本书是理论和实践相结合,适合新手,我本人就是学这个的,入门也是这么搞的
    2019-07-08 10:14:57 thumb_up( 4 )
  • 好多知识还不会,开始焦虑了,该怎么办??
    现在自己多找几个项目做做,用自己喜欢的语言来编程,明年春天先找份实习。
    2019-08-31 14:28:58 thumb_up( 3 )
  • 好多知识还不会,开始焦虑了,该怎么办??
    现在的孩子就这样,在学校的时候不珍惜,等离开了才后知后觉错过了很多。。。PS:我也是个苦逼毕业生
    2019-08-25 08:46:51 thumb_up( 1 )
eject