android 中CHECK宏分析

看到CHECK宏,开始以为和ASSERT一样,在release中不起作用。实际上是起作用的,会引起退出。下面是具体的源代码分析

 32 #define CHECK(condition)                                \
 33     LOG_ALWAYS_FATAL_IF(                                \
 34             !(condition),                               \
 35             "%s",                                       \
 36             __FILE__ ":" LITERAL_TO_STRING(__LINE__)    \
 37             " CHECK(" #condition ") failed.")


302 /*
303  * Log a fatal error.  If the given condition fails, this stops program
304  * execution like a normal assertion, but also generating the given message.
305  * It is NOT stripped from release builds.  Note that the condition test
306  * is -inverted- from the normal assert() semantics.
307  */
308 #ifndef LOG_ALWAYS_FATAL_IF
309 #define LOG_ALWAYS_FATAL_IF(cond, ...) \
310     ( (CONDITION(cond)) \
311     ? ((void)android_printAssert(#cond, LOG_TAG, ## __VA_ARGS__)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
checkreturn的意思是在程序使用宏定义来进行错误检查和返回。在程序,我们经常会遇到各种可能的错误情况,需要在代码进行相应的检查和处理。而使用宏定义可以简化这一过程,提高代码的可读性和可维护性。 首先,我们可以定义一个名为check,它接收一个表达式作为参数。在的定义,我们可以使用条件语句来对表达式进行判断。如果表达式的值为真,则什么也不做;如果表达式的值为假,则执行相应的错误处理操作。例如,我们可以使用宏定义来检查一个指针是否为空,并在为空时输出错误信息并返回。 在宏定义,我们可以使用关键字return来实现错误返回。例如,当我们在检查表达式结果为假时,可以使用return语句来提前结束当前函数的执行,并返回错误代码。这样就实现了错误检查和返回的功能。 使用checkreturn的好处是能够提高代码的简洁性和可读性。通过宏定义,我们可以将错误检查和处理代码进行封装,使得代码更加清晰明了。而使用return语句可以在检测到错误时立即返回,减少了代码的嵌套深度,提高了代码的可读性和可维护性。 总结来说,checkreturn是一种通过宏定义实现错误检查和返回的方法。它可以简化代码的编写,提高代码的可读性和可维护性。在实际的程序开发,我们可以根据具体的需求和场景,灵活运用宏定义来实现错误检查和返回的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值