白盒测试CC编程规范23

2023-3-27 来源:不详 浏览次数:

本系列文章将带大家一起解析一下白盒测试经常用到的GJB-标准规则,其中一共有条强制性规则。GJB-强制性规则是按类分的,一共有13类,前面的文章已经讲过一部分,本文继续往下讲一下循环控制类规则和类型转换类规则。

R-1-9-4无限循环必须使用while(1)语句,禁止使用for(;;)等其他形式的语句

违背示例中的两种情况在测试中我们都碰到过,一般的情况下也很少认为它们有问题,但是现在GJB-对它做了一个统一规定,凡是这种无限循环必须使用while(1)这种结构,不能用违背示例中的结构了。

类型转换类

类型转换有一个通用性的规则,就是不允许把范围大的数转换成范围小的数。R-1-10-1浮点数变量赋给短整数变量必须强制转换

这个首先它有可能会把精度给降低了,再一个有可能把这个数的比较大的部分给舍掉了。如果你保证这些没有问题的情况下,必须用强制的类型转换,直接赋值是不允许的。虽然强制类型转换也存在精度损失、大数被截掉的问题,但是只要你按照遵循示例这样做了强制类型转换了,就意味着你是知道存在这种风险了,但是你依然要这么做。R-1-10-2长整形变量赋值给短整形变量必须强制转换

长整形变量赋值给短整形变量也必须强制转换R-1-10-3double型变量赋值给float型变量必须强制转换

这里需要跟大家说一下,在咱们的pc机中好像double和float也没有太大的区别了,都是32位的,应该区别不是太大。违背示例中给出的例子,这个double或者是48位的,或者是64位的,而float就是32位的,所以就不能这样做了。R-1-10-4指针变量的赋值类型必须与指针变量类型一致

违背示例中举的例子是,p指针是一个无符号的整型数,后面是把一个无符号的短整型,强制赋给p,这样不行,必须把这个ptr的指针强制转换成无符号的整型数。R-1-10-5将指针变量赋予非指针变量或非指针变量赋予指针变量,必须使用强制转换

也就是说我们的指针原则上来说通常情况下是指向一个地址,我们为指针赋地址的时候,一般用常量来赋值,所以要把这个常量指明是一个指针类型。像遵循示例中展示的,ptr是个0,我们要把它转换成一个指针类型,一个无符号的整型。在咱们的计算机当中,地址总线到底是多少位的,有可能大家不太关心,地址总线有可能是32位的,还有一些是64位的,所以必须做这样的一个转换。如果不这样转换的话,尽管不会出问题,但是有可能让人看起来不舒服。

转载请注明:
http://www.wanruiguanye.com/bzyy/77435640.html
  • 上一篇文章:

  • 下一篇文章:
  • 网站首页 版权信息 发布优势 合作伙伴 隐私保护 服务条款 网站地图 网站简介

    温馨提示:本站信息不能作为诊断和医疗依据
    版权所有 2014-2024
    今天是: