转:assert() 函数用法
来源:互联网 发布:js购物车商品计算总价 编辑:程序博客网 时间:2024/06/01 09:44
#include <assert.h>
void assert( int expression );
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
int main( void )
{
}
[root@localhost error_process]#gcc badptr.c
[root@localhost error_process]# ./a.out
a.out: badptr.c:14: main: Assertion `fp' failed.
已放弃
#include <stdio.h>
#define NDEBUG
#include <assert.h>
用法总结与注意事项:
1) 在函数开始处检验传入参数的合法性
如:
int resetBufferSize(int nNewSize)
{
//功能:改变缓冲区大小,
//参数:nNewSize 缓冲区新长度
//返回值:缓冲区当前长度
//说明:保持原信息内容不变
assert(nNewSize >= 0);
assert(nNewSize <= MAX_BUFFER_SIZE);
...
}
2)每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败
不好: assert(nOffset>=0 &&nOffset+nSize<=m_nInfomationSize);
好: assert(nOffset >= 0);
assert(nOffset+nSize <= m_nInfomationSize);
3)不能使用改变环境的语句,因为assert只在DEBUG个生效,如果这么做,会使用程序在真正运行时遇到问题
错误: assert(i++ < 100)
这是因为如果出错,比如在执行之前i=100,那么这条语句就不会执行,那么i++这条命令就没有执行。
正确: assert(i < 100)
4)assert和后面的语句应空一行,以形成逻辑和视觉上的一致感
5)有的地方,assert不能代替条件过滤
- 转:assert() 函数用法
- 转:assert() 函数用法
- assert() 函数用法
- assert 的用法
- assert() 函数用法(转)
- 转:assert()函数用法总结
- 转: assert()函数用法总结
- [转]assert() 函数用法
- (转)assert()函数用法总结
- assert() 函数用法
- assert() 函数用法
- assert() 函数用法
- assert() 函数用法
- [转帖]assert 函数用法
- assert() 函数用法
- assert函数用法
- assert() 函数用法
- assert() 函数用法
- 常见嵌入式笔试题
- 常见嵌入式笔试题
- assert用法
- assert用法
- 转:assert() 函数用法
- 转:assert() 函数用法
- linux 让你的进程后台运行
- linux 让你的进程后台运行
- fasync(在内核发生某个事情时向应…
- fasync(在内核发生某个事情时向应…
- Android在TQ2440开发板上的移植(转…
- Android在TQ2440开发板上的移植(转…
- USB驱动程序之描述符
- USB驱动程序之描述符