- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《语言编码规范》PPT课件
目的与目标 规范部门内软件开发和设计风格,保证所有开发人员写出风格一致的代码 增强代码的健壮性、可读性和可维护性 通过人为以及自动的方式对最终软件应用确定质量标准 减少程序的潜在错误 课程概述 表达式和控制流程 初始化 代码格式 函数 宏 兼容性 1 表达式和控制流程 1 表达式和控制流程 1 表达式和控制流程 1 表达式和控制流程 1 表达式和控制流程 禁止在bool表达式中出现赋值语句 禁止对带符号的整型数进行位操作 不要对浮点型变量进行等于/不等于的判断 清晰的表示变量与0值的比较 在for语句的表达式中,只出现影响循环控制的变量,而不是其他无关变量 不要比较指针类型变量 不要在sizeof的参数中进行自增、自减[++/--]、赋值操作 在条件表达式中,对每个逻辑判断都使用(),即使没有逻辑上的需求 不要在if语句中的条件表达式中进行赋值操作 1 表达式和控制流程 如果计数器从0开始计数,建议for语句的循环控制变量的取值采用“前闭后开区间”写法,以防止出现“差1”错误 在多重嵌套的循环中,建议将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨越循环层的次数,从而优化程序性能 如果循环体内存在逻辑判断,并且循环次数很大,建议将逻辑判断移到循环体的外面 2 初始化 规则:在enum类型中,将成员全部初始化,或者都不初始化 原理:避免代码错误 2 初始化 2 初始化 Example void foo() { int *i; // Violation } Repair void foo() { int *i = NULL; // OK } 3 代码格式 规则:在switch中提供default分支 原理:提高容错性和可维护性,不必担心是否会遗漏相关的 switch语句 3 代码格式 int get_max(int a, int b); int main(void) { int i; int val_a; int val_b; for( i = 0; i 10; i++) { c = get_max(val_a, val_b); } } 3 代码格式 如果函数的参数过长,要从第二个参数开始换行显示,每一个参数和第一个参数对齐 避免switch语句中只有一条case分支 存储类型必须紧跟类型,而不是变量 在声明和定义处,将*操作符紧跟变量 不要在使用.或者-操作符的左右存在空格 在代码中,使用符号值代替数值 在switch中,每一条case分支必须使用break语句结束 在[ ]操作符前后不能出现空格 4 函数 函数名只能由大小写字母与数字构成。 函数名中除前缀外的各个单词首字母要大写。 4 函数 函数必须都有函数说明。 说明中必须包含如下内容: 名称(Function Name):函数的名称。 描述(Description):函数功能的简单描述。 作成日期(Created):格式为YY/MM/DD的日期,如03/09/28。 参数(Parameter):函数参数的说明。 参数说明的顺序依次为参数名称、参数类型、输入参数还是输出参数。 如果函数没有任何参数,本项填写“VOID”。 返回值类型(Return Code):函数返回值的类型。 如果函数不需要返回值,本项填写“VOID”。 作者(Author):函数的作者。 4 函数 一定要显示声明函数的返回值类型。 如果函数不需要返回值,要声明为void类型。 如果函数没有参数,参数处要书写void。 函数的声明要与函数定义一致(包括函数的类型及参数的类型、个数、顺序)。 4 函数 回避函数的递归调用。 调用没有参数的函数时、不要忘了加括弧“( )”。 使用pointer型函数返回値的时候,要确认它不是NULL之后再使用。 使用标准Library的函数的时候、在调用之前要确认,成为参数的値是否是作为其函数的参数能够取得的范围内的値。 函数调用传递的参数(类型、个数、顺序要与函数定义一致)。 4 函数 规则:使用const定义不需要改变引用方式的函数参数,使用const定义不需要改变指针类型的函数参数 原理:避免无意修改调用者的数据 4 函数 4 函数 5 宏 FALSE要被定义成0,TRUE要被定义成1 带有表达式的宏,为防止在解释时出现错误,使用()包含 使用typedef代替define的类型别名定义,便于改变函数返回值,易于代码review 禁止在宏定义中使用关键字和基本类型,避免重新定义语法 5 宏 如果某一个宏中有多条语句,则使用do{ } while(0) 的方式 6 兼容性 Example void foo() { int j; int k[10]; int m; m
文档评论(0)