c语言进阶-第七讲编码风格

c语言进阶-第七讲编码风格

ID:34112901

大小:157.08 KB

页数:24页

时间:2019-03-03

c语言进阶-第七讲编码风格_第1页
c语言进阶-第七讲编码风格_第2页
c语言进阶-第七讲编码风格_第3页
c语言进阶-第七讲编码风格_第4页
c语言进阶-第七讲编码风格_第5页
资源描述:

《c语言进阶-第七讲编码风格》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七讲编码风格(CodingStyle)凌明trio@seu.edu.cn东南大学国家专用集成电路系统工程技术研究中心www.cnasic.com目录简介及说明语言规则1.基础2.数据3.说明与表达式4.函数5.内存及资源6.源文件风格指导7.程序书写8.命名9.文档www.cnasic.com1简介及说明正确性易维护性易移植性代码的高效性www.cnasic.com程序实例floatb,c[10];voidabc(void){floatzongfen=0;intd;for(d=0;d<10;d++){if(c[d]>0)zongfen+=c[b];b=zongfen/10;}这段程序

2、在做什么?这段程序是否有错误?这程序中存在哪些不良的书写风格?它们可能会引起什么后果?www.cnasic.com2#defineSTUDENT_NUM10//学生总数floatfAvgScore;//平均分floatb,c[10];floatfScore[STUDENT_NUM];//分数voidabc(void){floatzongfen=0;intd;/*平均分计算函数*/for(d=0;d<10;d++){voidAvgScore(void)if(c[d]>0){zongfen+=c[b];b=zongfen/10;}inti;floattotal_score=0;//总分fo

3、r(i=0;i0)//遇到负分,记为0分total_score+=fScore[i];}//计算平均分有了哪些改进?if(STUDENT_NUM>0)你认为还有什么地方需要改fAvgScore=total_score/STUDENT_NUM;进?www.cnasic.com}语言规则-基础编写清晰表达设计思路和意图的代码针对易读来优化代码,效率的优化留给编译器去做.编写可大声朗读的代码.利用注释阐述和解释代码,并进行总结.使用有意义且无歧义的命名方法.(推荐使用全英文的命名)尽可能使用标准C函数.不要将同样的

4、代码使用三次以上,编写相应的函数.让程序自己检查运行中的错误-编写调试代码www.cnasic.com3语言规则-基础谨慎使用GOTO语句.不要修补那些风格差的代码,重写他们.不要比较两个浮点数是否相等.优化代码或调试一旧版本前,备份并记录所做的修改.避免机器及编译器相关的代码,如必需,隔离相关代码.将编译器设为最高警告水平,把每一个警告视为错误来处理.不要直接在程序中直接书写常量,应该使用常量的宏定义www.cnasic.com语言规则-避免使用#include的头文件没有被引用.在同一个编译单元内(一般是一C文件)重复引用同一头文件.在头文件内说明却仅仅在一个C文件中引用.全局量仅

5、仅在一个C文件中引用.(应该使用static量).在付值中,左右两边的数据类型不一样.(如确实必须,应该显式地进行类型转换)函数返回指向函数内说明的自动变量的指针.(应该使用指向static变量的指针).删除switchcase语句中的break语句(除非两个或多个case的处理代码是完全一致的,这时应该加以注释。)www.cnasic.com4语言规则-避免使用两个不同类型指针间的运算.隐含的数据类型转换.隐含的对于变量是否为0的测试.(比如:“if(a=b)”;正确的写法是“if((a=b)!=0)”)缺少default的switch语句.表达式中假设了运算顺序.(不要怕写括号)忽

6、略函数的返回值,如果函数不需要返回值可使用(void)f();但如果程序中无返回值函数的数量太多,则系统的设计可能有问题.www.cnasic.com语言规则-依赖关系模块间的依赖关系对于开发效率,可测性,可维护性都有很大的影响.良好的依赖关系应该是简单的,层次化的,和非循环的.函数间传递的参数越少越好,减少模块件的依赖关系和耦合程度,最大程度上实现对模块的封装,将模块内的复杂性屏蔽,而对外提供简洁的数据接口。尽量减少全局量的使用,局限在一个c文件中的全局量应该说明为static。对于一组在逻辑上相关的变量,应该尽量将他们封装在结构中。www.cnasic.com5语言规则-类型推荐使

7、用typedef来进行数据类型的说明。所有不同类型变量间的运算,必须显式地进行类型转换。(这一点对于不同类型的指针间运算尤其重要)对于没有加unsigned修饰的类型,应该小心处理可能的数据溢出www.cnasic.com语言规则-变量在程序(函数或c文件)的开始处对变量进行说明,将相关的变量说明放在相邻的行变量的说明应该遵循一个变量一行的原则,除非所说明的变量是紧密相关的将不变的变量说明为const尽量在变量的说明行中对变量进行初始化避免不必

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

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

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