




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
专业的嵌入式技术研发、推广、培训、认证机构软件编码参考规范一、整体格式 1-1 程序块要采用缩进风格编写,使用TAB控制缩进。 1-2 函数的定义采用Linux内核编程风格,即函数类型与函数名称不分行。 1-3 左右花括号的位置采用GNU编程风格,即左括号与右括号都在同一列左对齐。 示例: static int sub(int mask, int *dest) if (mask != 100) return 1; return 0; - 此处加入一空行分隔 */ test = mask + 100; tmp = test; if( tmp = 101 ) return 0; else return 1; /* - 此处加入一空行分隔 */ static void mul(void) return 0; - 其左右两侧的标识符之间,插入一个空格分隔。单目运算符 ! + - & . - 等前后不加空格。 1-8 函数调用和函数定义中的括号()与其中参数之间紧贴,不要使用空格分隔。 1-9 算术表达式(包含条件表达式)和它左右的括号()之间紧贴,不要使用空格分隔, 防止结构松散。 示例: int sample(int x, int y) for0(count0=01; count0- int sample0(0int x,int y0) for(count=1;count80字符)要分行书写,对齐格式如下所示。 示例: report_or_not_flag = (taskno- report_or_not_flag = (tasknoMAX_ACT_TASK_NUMBER) & (n7stat_stat_item_valid(stat_item) & (act_task_table.result_data != 0)二、注释风格 2-1 所有注释出现的位置可以是以下之一:a). 整个源文件的最顶部,说明此模块的相关信息,一般为多行注释。b). 源文件内部定义的函数实现上侧,紧贴其函数实现部分,不用空行分隔。c). 相对独立的代码段上侧,紧贴其注释说明的实现代码,不用空行分隔。d). 简短的代码行右侧,一般为单行注释,内容不超过10个单词。 示例: /* * robot/sercos.c * copyright(C) 2002-4-8 Li ming * */ #include /* the include file */ /* * This is the main function * 0 - return successfully * 1 - return some error code */ int main(void) int count; /* the counter for test number */ /* the main block of our test main */ for( count = 1; count - 此处加入一空行分隔 */ /* just a test function */ void *function(int x, int y) /* local variable */ int tmp; - int count; / a counter to cal / just a test function void *function(int x, int y) int tmp; /* local variable */ 以上说明的注释风格主要是格式方面的要求,下面的是注释风格内容方面的要求: 2-8 源文件头部注释的内容主要包括文件名称、模块功能简述、版权说明、作者、创建日期、最后修改日期、主要函数及其功能、修改日志等。 示例: / * * example.c - show some rule and preference of our program principles of Comments * Copyright (C) 2002-2005 Tsinghua AI lab * Authors: li ming * Create Time: 2001/05/01 * Last Modified: 2002/05/27 * * Revision 1.1 2001/06/01 * + Add some global variables to control robot * * Revision 1.2 2001/08/01 * + Modified copyright and permission notice * * Revision 1.3 2002/05/27 * + Replaced void ShowHelp() function * / 2-9 函数头部注释的内容主要包括函数名称、目的功能简述、输入、输出、返回值含义、备注说明等。 示例: / * * set_current_velocity - set velocity of axis No.axis * * Inputs: axis: the index of axis * vel: the velocity you want to set * Outputs: change the axiss velocity * Return vaule: 0 - setting ok! * -1 - the specified axis not exist! * Description: this API is only for kernel space programming. * Do not use this function in user space. * / int set_current_velocity(int axis, double vel) if (stateaxis = OK) velaxis = vel; return 0; return 1; 2-8 对于全局变量的注释要尽量详细,包括它的功能,取值范围,各取值含义等。 同时,对可能存取这个变量的模块过程要做一定说明。 2-9 数据结构中的变量如果不是充分自注释的,必须加以注释。 2-10 对于重要的分支语句,循环语句等也要加以充分注释,便于理解调试。 示例: / * error_code - Global variable to show error info. * 0 - Success * -1 - File not found * -2 - File format error * -3 - Operation not permitted * / int error_code;三、标识符命名 3-1 标识符的命名要清晰明了,可以使用完整的单词和大家易于理解的缩写。 3-2 较短的单词可以通过去“元音”形成缩写,较长的单词可以取单词的头几个字母形成缩写,也可以采用大家基本认同的缩写。 3-3 如果是使用特殊的缩写方式,则需要加以注释说明。 3-4 禁止将i, j, k等无具体含义的单个字符作为标识符,但可以作为循环变量。 示例: int tmp, inc, msg; int len_sntn;/* length of the input sentence */ -subdev = subdevice; return; 五、格式转换工具indentindent 是GNU的一个工具软件,简单的说就是可以为代码产生美观个性化的风格。一般说来有两种编码格式,一种是GNU风格,一种是Kernighan & Ritchie 风格。indent 有很多选项来指定如何风格化你的源代码,我们在上面所描述的代码风格是结合了这两种风格的优点而制定的,使用indent工具可以方便地按照我们所需要的格式输出新的代码文件。它的命令格式如下 示例: indent -options -o outputfile sourcefile 例如: indent -gnu -o gnu_style.c my_style.cindent命令详细说明表选项功能实际使用-bad在每个定义块后插入一空行分隔-bad-bap在每个函数实现之后插入一空行分隔-bap-i(n)调整缩进风格,右缩进的字符数-i8-br 左花括号的风格,位置在当前行代码的最右边不选-brs定义结构时 左花括号位置在当前行代码的最右边不选-bl 左花括号的风格,位置在下一行代码的左边-bl-bls定义结构时 左花括号位置在下一行代码的左边-bls-bli(n)辅助-bl选项,调整左花括号在下一行的缩进位置-bli0-ce调整else与if语句中 右花括号在同一行出现不选-cdw调整do while语句中while出现的位置在的同行-cdw-cli(n)格式化case语句的case右缩进的字符数-cli4-cbi(n)格式化case语句之后的代码段右缩进的字符数-cbi0-ss对于for,while的执行段为空时,在;前插入一个空格 -ss-pcs函数调用时,在函数名和右侧()之间插入一个空格-npcs-cs在类型强制转换的地方插入一个空格-cs-saf在for语句和右侧()之间插入一个空格-saf-sai在if语句和右侧()之间插入一个空格-sai-saw在while语句和右侧()之间插入一个空格-saw-prs在()内的表达式与左右圆括号之间插入一个空格-nprs-di(n)在定义变量时,数据类型与变量名之间相隔n个空格 -di1-bc一个数据类型定义多个变量时是否用分行显示-nbc-bfda在函数入口的参数表中各参数之间是否分行显示-bfda-pslGNU风格:函数类型和函数名分占两行显示-npsl-lp长语句被截断后靠右侧对齐-lp-ip(n)老式函数定义的分行参数靠右缩进的字符数-ip0-sc多行注释的风格,每行都以 * 星号开始-sc-sob处理代码中多余的空行。若空行多于格式规定则删除
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业自动化仪表合作协议书
- 机电工程系毕业论文标题
- 2024年院感年终考核试卷(有答案)
- 2024年社区《网格员》考前冲刺卷及答案
- 珠宝劳动合同
- 2025年质量员之市政质量基础知识通关考试题库带答案解析
- 摄影DVD专业毕业论文
- 2025卫生院医院感染突发事件应急预案
- 风电场电力调度自动化方案
- 高铁专业毕业论文答辩自辩
- 绿色施工培训记录表
- 全套教学课件《公共艺术(音乐)》
- 普通话水平测试培训(标准版)课件
- 高中数学《基于问题链的数学教学探索》课件
- 胰十二指肠切除术的手术配合
- 同创伟业投资分析报告(附358家被投企业介绍)
- 数学-四年级(上册)-人教版-《亿以上数的认识及读法》教学课件
- 政治经济学ppt课件汇总(完整版)
- 互联网保险概述课件
- 医院超声影像科应急预案演练(徒手心肺复苏、过敏性休克、停电应急)
- 不锈钢储罐FAT模板
评论
0/150
提交评论