• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

华为软件编程规范和范例

发布: 2008-4-23 16:04 | 作者: 不详 | 来源: www.cppblog.com/oosky | 查看: 471次 | 进入软件测试论坛讨论

领测软件测试网


½5-7 :仔细设计结构中元素的布局与排列顺序,使结构容易理解、节省占用空间,并减少引起误用现象 
说明:合理排列结构中元素顺序,可节省空间并增加可理解性。 
示例:如下结构中的位域排列,将占较大空间,可读性也稍差。 
typedef struct EXAMPLE_STRU
{
    unsigned int valid: 1;
    PERSON person;
    unsigned int set_flg: 1;
} EXAMPLE;
若改成如下形式,不仅可节省1字节空间,可读性也变好了。
typedef struct EXAMPLE_STRU
{
    unsigned int valid: 1;
    unsigned int set_flg: 1;
    PERSON person ;
} EXAMPLE;
½5-8 :结构的设计要尽量考虑向前兼容和以后的版本升级,并为某些未来可能的应用保留余地(如预留一些空间等) 
说明:软件向前兼容的特性,是软件产品是否成功的重要标志之一。如果要想使产品具有较好的前向兼容,那么在产品设计之初就应为以后版本升级保留一定余地,并且在产品升级时必须考虑前一版本的各种特性。 
½5-9 :留心具体语言及编译器处理不同数据类型的原则及有关细节 
说明:如在C语言中,static局部变量将在内存“数据区”中生成,而非static局部变量将在“堆栈”中生成。这些细节对程序质量的保证非常重要。
  
½5-10 :编程时,要注意数据类型的强制转换 
说明:当进行数据类型强制转换时,其数据的意义、转换后的取值等都有可能发生变化,而这些细节若考虑不周,就很有可能留下隐患。 
½5-11 :对编译系统默认的数据类型转换,也要有充分的认识 
示例:如下赋值,多数编译器不产生告警,但值的含义还是稍有变化。 
char chr;
unsigned short int exam;
chr = -1;
exam = chr; // 编译器不产生告警,此时exam为0xFFFF。
½5-12 :尽量减少没有必要的数据类型默认转换与强制转换 
½5-13 :合理地设计数据并使用自定义数据类型,避免数据间进行不必要的类型转换 
½5-14 :对自定义数据类型进行恰当命名,使它成为自描述性的,以提高代码可读性。注意其命名方式在同一产品中的统一 
说明:使用自定义类型,可以弥补编程语言提供类型少、信息量不足的缺点,并能使程序清晰、简洁。 
示例:可参考如下方式声明自定义数据类型。 
下面的声明可使数据类型的使用简洁、明了。 
typedef unsigned char  BYTE;
typedef unsigned short WORD;
typedef unsigned int   DWORD;
下面的声明可使数据类型具有更丰富的含义。 
typedef float DISTANCE;
typedef float SCORE;
½5-15 :当声明用于分布式环境或不同CPU 间通信环境的数据结构时,必须考虑机器的字节顺序、使用的位域及字节对齐等问题 
说明:比如Intel CPU与68360 CPU,在处理位域及整数时,其在内存存放的“顺序”正好相反。
示例:假如有如下短整数及结构。 
unsigned short int exam;
typedef struct EXAM_BIT_STRU
{                       /* Intel 68360 */
    unsigned int A1: 1; /* bit  0      7   */
    unsigned int A2: 1; /* bit  1      6   */
    unsigned int A3: 1; /* bit  2      5   */
} EXAM_BIT;
如下是Intel CPU生成短整数及位域的方式。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网