PC平台(x86)Linux系统 与 嵌入式(ARM)Linux系统的准备以及远程操作

一:assert断言:

断言是程序调试很重要的手段,ASSERT( f )在Debug模式下,每次运行到这里后会计算括号中的表达式,如果表达式为0,则中断执行,弹出一个警告框,用户可选择“继续”,“重试”,“忽略”在Release模式下,这句语句不会被编译进代码。ASSERT一般用于程序内部确认参数的正确性,即调用内部函数的时候,要由调用者保证参数的正确,而被调用函数内部,就可以通过ASSERT来检查参数是否满足要求。

1。C 标准库的 assert.h头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。
已定义的宏 assert 指向另一个宏 NDEBUG,宏 NDEBUG 不是 <assert.h> 的一部分。如果已在引用 <assert.h> 的源文件中定义 NDEBUG 为宏名称,则 assert 宏的定义如下:

#define assert(ignore) ((void)0)

2.assert() 源码包括assert.h和assert.c

assert.h的源码:

/* assert.h - ANSI standard assert functions header */

/* Copyright 1992 Wind River Systems, Inc. */

/*
modification history
--------------------
01e,13nov92,smb  fixed assert macro to not generate warnings
01d,22sep92,rrr  added support for c++
01c,20jul92,smb  added __assert extern.
01b,04jul92,jcf  cleaned up.
01a,03jul92,smb  written.
*/

#ifdef __cplusplus
extern "C" {
#endif

#include "types/vxANSI.h"

#undef assert
#ifdef NDEBUG
#define assert(ignore)	((void) 0)
#else /* turn debugging on */

#define _ASSERT_STR(z) _ASSERT_TMP(z)
#define _ASSERT_TMP(z) #z

#if defined(__STDC__) || defined(__cplusplus)
extern void __assert (const char *msg);
#else
extern void __assert ();
#endif

#define assert(test) ((void) \
		      ((test) ? ((v
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值