欢迎来到天天文库
浏览记录
ID:40725937
大小:45.00 KB
页数:8页
时间:2019-08-06
《05.变量、结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、软件编程规范总则5变量、结构5变量、结构¹5-1:去掉没必要的公共变量。说明:公共变量是增大模块间耦合的原因之一,故应减少没必要的公共变量以降低模块间的耦合度。¹5-2:仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。如果可以,尽量使用无符号数,不要使用有符号数,这会增加CPU处理的负担,也会增加存储器的开销,可能在高速CPU上用户没有感觉,但是如果移植到一些低成本的低速CPU上,就可能有问题,而且这是一个程序员应该养成的良好习惯,尤其是针对嵌入式系统设计。说明:在对变量声明的同时,应对其含义、作用及取值范围进行注释说明
2、,同时若有必要还应说明与其它变量的关系。¹5-3:明确公共变量与操作此公共变量的函数或过程的关系,如访问、修改及创建等。说明:明确过程操作变量的关系后,将有利于程序的进一步优化、单元测试、系统联调以及代码维护等。这种关系的说明可在注释或文档中描述。示例:在源文件中,可按如下注释形式说明。RELATIONSystem_InitInput_RecPrint_RecStat_ScoreStudentCreateModifyAccessAccessScoreCreateModifyAccessAccess,Modify注:RELATION为操作
3、关系;System_Init、Input_Rec、Print_Rec、Stat_Score为四个不同的函数;Student、Score为两个全局变量;Create表示创建,Modify表示修改,Access表示访问。其中,函数Input_Rec、Stat_Score都可修改变量Score,故此变量将引起函数间较大的耦合,并可能增加代码测试、维护的难度。¹5-4:当向公共变量传递数据时,要十分小心,防止赋与不合理的值或越界等现象发生。必须检查变量的类型,不要指望编译器提供的自动变量转换。说明:对公共变量赋值时,若有必要应进行合法性检查,以
4、提高代码的可靠性、稳定性。¹5-5:防止局部变量与公共变量同名。说明:若使用了较好的命名规则,那么此问题可自动消除。仅供内部使用8软件编程规范总则5变量、结构¹5-6:严禁使用未经初始化的变量作为右值。说明:特别是在C/C++中引用未经赋值的指针,经常会引起系统崩溃。½5-1:构造仅有一个模块或函数可以修改、创建,而其余有关模块或函数只访问的公共变量,防止多个不同模块或函数都可以修改、创建同一公共变量的现象。说明:降低公共变量耦合度。½5-2:使用严格形式定义的、可移植的数据类型,尽量不要使用与具体硬件或软件环境关系密切的变量。说明:使
5、用标准的数据类型,有利于程序的移植。示例:如下例子(在DOS下BC3.1环境中),在移植时可能产生问题。voidmain(){registerintindex;//寄存器变量_AX=0x4000;//_AX是BC3.1提供的寄存器“伪变量”...//programcode}½5-3:结构的功能要单一,是针对一种事务的抽象。说明:设计结构时应力争使结构代表一种现实事务的抽象,而不是同时代表多种。结构中的各元素应代表同一事务的不同侧面,而不应把描述没有关系或关系很弱的不同事务的元素放到同一结构中。示例:如下结构不太清晰、合理。typedef
6、structSTUDENT_STRU{unsignedcharname[8];/*student'sname*/unsignedcharage;/*student'sage*/unsignedcharsex;/*student'ssex,asfollows*//*0-FEMALE;1-MALE*/unsignedcharteacher_name[8];/*thestudentteacher'sname*/unisgnedcharteacher_sex;/*histeachersex*/}STUDENT;仅供内部使用8软件编程规范总则5变
7、量、结构若改为如下,可能更合理些。typedefstructTEACHER_STRU{unsignedcharname[8];/*teachername*/unisgnedcharsex;/*teachersex,asfollows*//*0-FEMALE;1-MALE*/}TEACHER;typedefstructSTUDENT_STRU{unsignedcharname[8];/*student'sname*/unsignedcharage;/*student'sage*/unsignedcharsex;/*student'ssex
8、,asfollows*//*0-FEMALE;1-MALE*/unsignedintteacher_ind;/*histeacherindex*/}STUDENT;½5-4:不要设计面面俱到、非常灵活的数据
此文档下载收益归作者所有