一.加法
先验条件测试。下面的代码执行加法操作数的一个先验条件测试,以保证没有回绕的可能性。
unsigned int ui1,ui2,sum;
/*初始化ui1,ui2*/
if(UINT_MAX-ui1<ui2)//UINT_MAX头文件是<limits.h>
{
/*处理错误情况*/
}
else
{
sum=ui1+ui2;
]
后验条件测试。后验条件测试在操作数被执行后执行,它测试操作所得的值,以确定它是否在有效的范围内。下面的代码执行后验条件测试,以确保两个unsigned int 类型的数据之和sum不小于ui1,若非,则发生回绕。
unsigned int ui1,ui2,sum;
/*初始化ui1,ui2*/
if(sum<ui1)
{
/*处理错误情况*/
}
二.减法
先验条件测试
unsigned int ui1,ui2,diff;
/*初始化ui1,ui2*/
if(ui1<ui2)
{
/*处理错误情况*/
}
else
{
diff=ui1+ui2;
]
后验条件测试
unsigned int ui1,ui2,sum;
/*初始化ui1,ui2*/
diff=ui1-ui2;
if(diff>ui1)
{
/*处理错误情况*/
}