编码规则(可维护性)

编码规则(可维护性)

ID:14389406

大小:412.00 KB

页数:72页

时间:2018-07-28

编码规则(可维护性)_第1页
编码规则(可维护性)_第2页
编码规则(可维护性)_第3页
编码规则(可维护性)_第4页
编码规则(可维护性)_第5页
资源描述:

《编码规则(可维护性)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第2章维护性2006/11/10V1.00大多嵌入式软件开发中,都会在制作完成的软件上进行维护作业。 维护的原因各种各样,例如:・发布的软件中发现Bug,需要修改。・对应产品的市场要求,以既存软件为基础,追加新的功能。 等等。 像这样,在制作好的软件上加工,要尽量避免错误,有效的进行。 系统界管这叫维护性。 在此,整理了维护、提高嵌入式软件源代码维护性的一些惯用方法。①维护性1・・・意识到其他人也会看你的代码。②维护性2・・・使用不会改错得方法。③维护性3・・・把程序尽量简单化。④维护性4・・・统一编码方法。⑤维护性5・・・使用

2、便于测试的编码方法。⑥维护性6・・・Uniden(株)Know-how集。7272/72维护性1意识到其他人也会看你的代码。在制作源代码时考虑到,它会被制作者以外的技术者再利用或维护。因此,源代码要使用容易理解的表现方式。「维护性1」有以下12个惯用做法。维护性1.1 不保留不使用的代码。维护性1.2 不使用麻烦,杂乱的写法。维护性1.3 不使用特殊的写法。维护性1.4 演算的优先顺序明确易懂。维护性1.5 不省略取得函数地址的演算、比较演算。维护性1.6 一个领域用于一个目的。维护性1.7 不重复使用名字。维护性1.8 不使用

3、容易理解错的语言规格。维护性1.9 在特殊的方法中写明意图。维护性1.10 不掩埋MagicNumber。维护性1.11 明示领域属性。维护性1.12 不编译的语句也要正确记述。7272/72维护性1.1 不遗留不使用的代码。M1.1.1 不声明(定义)没有使用的函数、变量、参数、标签。参考规则 无相关规则 M1.9.1M4.7.2M1.1.2 不应该把代码的一部分“Commentout”。参考规则 MISRA-C2.4相关规则 M1.2.1M4.7.2<正确例> #if0/*因为~、无効化*/a++;#endif<不正确例>・

4、・・・・・・/*a++;*/・・・・・・・}如果需要把代码部分无効化,建议不要用Commentout,而是用#if0圈住。或者确定一个无効化代码的明确规则也行。但是,留下无効代码会导致代码不好读,还是应该避免的。note在调试时,会Commentout一部分代码,但是调试结束后不要忘了解除Comment,否则可能会发生Bug。如果限制了Commentout代码,就可以在早期发现这些Bug。7272/72维护性1.2 不使用麻烦,杂乱的写法。M1.2.1 用于相同目的的相同类型的自动变量,可以用1个声明语句进行多次声明,但是不可以

5、混合初始化的变量和不初始化的变量。参考规则 无相关规则 M1.6.1<正确例> intj,k;intl=0;int*p;intq;<不正确例>intj,k,l=0;/*混有初始化的内容*/int*p,q;/*混有不同类型的变量*/如果声明了int*p;,那么类型就是int*、如果声明了int*p,q;,q的类型不是int*、而是被解释为int。 note   写常量时,如果不使用接尾语的话,整数常量为int型、浮动小数点常量为double型。但是,整常量中如果有int不能表现的值,那么这个值将会变成能表现它的类型。因此,0x80

6、00在int为16bit时为unsignedint,但在int为32bit时变成signedint。如果想把它作为unsigned使用的话,把”U”写为接尾语。另外,在浮动小数点的float型和double型演算速度不同的TargetSystem中,进行float型的变量和浮动小数点的演算时,如果浮动小数点常量中没有”F”,这个演算就会变成”double”型的演算,这一点需要注意。要在浮动小数点常量上多下些功夫,使其一看就能知道是浮动小数点常量,比如在小数点左右最少要写一个数字等等。   特别是在演算精度、演算速度很重要的程序中

7、,必须要充分理解实际是使用的那种类型的演算。(不要Cut&Try。)整数常量的类型接尾语u/U:unsignedint,unsignedlong接尾语l/L:long,unsignedlong接尾语u/Uとl/Lの両方:unsignedlong浮动少数点常量的类型接尾语f/F:float接尾语l/L:longdouble7272/72维护性1.3 不使用特殊的方法。M1.3.1 switch(式)的表达式中,不用求真假结果的表达式。参考规则 无相关规则 无<正确例> if(val1==0){val2=0;}else{val2=1

8、}<不正确例>switch(val1==0){case0: val2=1; break;default: val2=0; break;}如果在Switch语句中使用求真假结果的表达式,分歧数就会变成2个、不需要在多分歧命令的switch语句中使用。switch语

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。