| 
 
| 1 谨慎使用全局(公共)变量(1)去掉没必要的公共变量。公共变量是增大模块间耦合的原因之一,故应减少没必要的公共变量以降低模块间的耦合度。 
 (2)仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。在对变量声明的同时,应对其含义、作用及取值范围进行注释说明,同时若有必要还应说明与其它变量的关系。
 
 (3)防止局部变量与公共变量同名——通过使用较好的命名规则来消除此问题。
 2 数据类型间的转换(1)编程时,要注意数据类型的强制转换。当进行数据类型强制转换时,其数据的意义、转换后的取值等都有可能发生变化,而这些细节若考虑不周,就很有可能留下隐患。
 
 (2)对编译系统默认的数据类型转换,也要有充分的认识。
 示例:如下赋值,多数编译器不产生告警,但值的含义还是稍有变化。
 char chr;
 unsigned short int exam;
 chr = -1;
 exam = chr; // 编译器不产生告警,此时exam为0xFFFF。
 
 (3)尽量减少没有必要的数据类型默认转换与强制转换。例如,所有的 unsigned类型都应该有后缀“U”以明确其类型。
 
 (4)合理地设计数据并使用自定义数据类型,避免数据间进行不必要的类型转换。
 
 (5)对自定义数据类型进行恰当命名,使它成为自描述性的,以提高代码可读性。注意其命名方式在同一产品中的统一,并且保证没有多重定义。使用自定义类型,可以弥补编程语言提供类型少、信息量不足的缺点,并能使程序清晰、简洁。
 示例:可参考如下方式声明自定义数据类型。下面的声明可使数据类型的使用简洁、明了。
 typedef unsigned char  BYTE;
 typedef unsigned short WORD;
 typedef unsigned int   DWORD;
 
 下面的声明可使数据类型具有更丰富的含义。
 typedef float DISTANCE;
 typedef float SCORE;
 
 (6)不要用八进制数——整型常数以”0“开始会被认为是8进制。示例:
 code[1]=109
 code[2]=100
 code[3]=052
 code[4]=071
 如果是对总线消息初始化,会有危险。
 
 | 
 评分
查看全部评分
 |