控制工程师论坛

软件与程序

软件编程经典培训实例 4、不同数据类型之间的比较操作

xilinxue
xilinxue

2008-11-06

在循环终止条件的判断中,不同类型变量的比较操作是容易造成死循环错误的地方,同时也是开发人员容易忽视的地方,值得测试人员多加留意。下面两个例子是该类错误的两种典型情况:
【例三】file02文件中某函数中如下代码,可能造成死循环:
         ......
            int i;
 WORD *pCheck  =(WORD*)p;
 WORD wCheckSum=*pCheck;
 pCheck++;

 for(i=1;i<dwLen/2;i++)
 {
  wCheckSum^=(*pCheck);
  pCheck++;
 }
 //binlen had already word alignment
 return (wCheckSum);  
 ......
   该段代码是在DOS环境下用BC编译的,由于循环变量i是int型(2个字节),而dwLen是DWORD型(4个字节),如果dwLen大于65536,那么该函数就是死循环了。

上面的例子是不同类型变量之间直接比较操作,还有一种情况是函数的返回值与另一不同类型的变量比较,见下面例子:

回帖

评论1

总共 , 当前 /
首页 | 登录 | 注册 | 返回顶部↑
手机版 | 电脑版
版权所有 Copyright(C) 2016 CE China