如下,在顺序表的定点插入函数中,我们使用assert()函数判断顺序表传入的参数是否合理,即顺序表地址是否为NULL?以及要插入的元素插入的范围是否在顺序表的元素范围内?...分别给assert()函数传入:顺序表的地址(即ps).
pos>=0(即判断插入点pos是否在0号元素之前),
possize(即判断插入点是否在最后一个元素的next之外)....也即,虽然使用了assert函数来报错,但同时检测多个条件时,断言失败,我们还是无法清楚的立即知道到底是哪个条件出错了,所以我们应当在使用assert函数时让它只检测一个条件....断言assert 是仅在Debug 版本起作用的宏,它用于检查"不应该"发生的情况,如果编译为Release版本则被忽略....不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。
使用断言对函数的参数进行确认。
在编写函数时,要进行反复的考查,并且自问:"我打算做哪些假定?"