2014年8月7日
摘要: 1 作用: 断言常做语言处理的高级形式,自动处理软件隐藏很深其且它手段不易发现的错误,快速进行异常定位。同时这也是软件单元测试必须的技术。2 使用范围: 2.1放在函数入口对入口参数进行合法性检查(这也是我们经常看到的) 2.1将assert(0)放在预计正常情况不会出现的地方(一旦出现肯定是... 阅读全文
posted @ 2014-08-07 11:35 杰瑞鼠 阅读(3240) 评论(0) 推荐(0) 编辑
摘要: 问题引出: 我们都知道宏定义#define只是简单替换,所以遇到复杂的带参数宏,必须很小心的为需要的参数加上括号“()”;同样碰到复杂的多条语句替代,虽然加{}可以将其封装成一个整体,但同时又有另一个问题:与语法习惯的冲突。比如: #include <stdio.h> void print_1(vo 阅读全文
posted @ 2014-08-07 11:24 杰瑞鼠 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 标记程序的运行状态和控制主要有以下几种:break/continue/return/参数的返回值/exit(int n)_exit() atexit((*p)(参数列表)):1 break:用在开关语句、循环语句、和if结合使用。表示跳出当前开关、循环体(仅跳出一层),执行开关循环体后面的程序,和i... 阅读全文
posted @ 2014-08-07 09:39 杰瑞鼠 阅读(436) 评论(0) 推荐(0) 编辑