c语言编码规范_第1页
c语言编码规范_第2页
c语言编码规范_第3页
c语言编码规范_第4页
c语言编码规范_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编码规范,第一部分 前言,Preface,为什么要这么做?,书写良好的代码更容易阅读 容易阅读的代码才容易被理解 容易被理解的代码才健康 编程风格体现了程序员对语言的理解水平 求职:好的编程风格给别人良好的第一印象,是获得高薪的第一步,1. 编写目的,通过编程规范的学习和强制执行,使同学们从一开始就接触基本的软件开发思想,了解基本的软件工程规范,养成良好的编程习惯;为后续课程的实践环节和日后实际工作打下良好的基础;也便于教师批改与回复电子作业。 执行良好的编码规范可以使编写出来的程序易于阅读、理解和管理。,2. 编码规范的定义,编码(coding):是指用适当的代码编写工具编写C语言程序的源代

2、码 编码规范: 相关英文说法:coding standard, coding convention, coding criterion 是指被普通采用的、或由某个企业或机构规定的,用计算机语言编写程序的过程中需要遵守的一套规则或约定的集合 编码规范并不是语言的语法规则,3. 编码规范的应用,在软件业高速发展、团队开发成为基本开发模式的今天,几乎每个软件企业或软件开发团队都会制定各种各样的规范,应用于软件开发过程的各个环节中,编码规范是最基础规范之一。 不同的公司,对同一种开发语言,一般都采用类似的规范,也就是说编码规范具有一些通用性的标准,4. 编码规范的学习和执行,要求学习和掌握规范标准 要

3、求在本课程的作业过程中执行这些规范,上交的电子作业必须符合这些规范要求 要求在后续相关课程中执行此规范中的基本部分,并根据后续课程内容要求执行相应的扩展规范,第二部分 C语言编码规范,Coding standards,1. 文件级模块说明规范,File module specification,文件级模块说明规范的含义,模块定义:指以独立的文件形式存在的模块,主要包括两类 C或C+的扩展名为.c或.cpp的源代码文件模块,例如abc.cpp, exam.c 扩展名为.h的头文件模块, 如abc.h,exam.h 对于任何一个用户新建的模块,必须按规范要求给出模块的相关描述信息,文件级模块说明的

4、构成,文件级模块说明至少应由以下部分构成 1. 模块的作者信息 2. 模块的版权声明 3. 模块的名称 4. 模块的摘要描述 5. 模块的其它说明 6. 模块的历史信息,文件级模块说明的编写,1. 每个用户的文件级代码模块必须编写一个说明 2. 模块说明要求以注释的形式出现在模块的首部 3. 为了减少每次的工作,每个人应先编写好不变部分,每新建一个模块将不变部分复制到文件首部,再行更改可变部分,中文版文件级模块说明规范,/* 作者信息: 姓名: 学号: 班级: 学院: Email: 电话: 版权声明: 模块名称: 本模块详细名称,不是文件名 摘要: 摘要地描述本模块的功能 其它说明: 可有可无

5、,有关本模块的附加说明,这些说明可以在以后帮助代码的阅读者理解这个模块里的内容,如:算法的描述,特殊情况,参考资料等 模块历史: 谁于某年某月某日创建本模块,创建人email 谁于某年某月某日修改本模块,修改人email 修改原因:可有可无,根据需要添加 */,例子,/* 作者信息: 姓名:张三 学号:06123456 班级:计科0601班 学院:计算机 Email: 电话:51689999 版权声明: 版权由张三所有,除老师外,未经允许不得拷贝本人作业 模块名称: 第一个模块 摘要: 本模块是我的第一个C语言作业,实现了一些简单的功能 其它说明: 无 模块历史: 张三于2006年9月20日创

6、建本模块,email: 张三于2006年9月25日修改本模块,email: 同上 修改原因:增加了一个输出正方形的函数 */,注意:红色部分为必填部分,缺填红色部分可能导致作业无法得到批阅,注释开始,注释结束,/* 作者信息: 姓名:张三 学号:06123456 班级:计科0601班 学院:计算机 Email: 电话:51689999 版权声明: 版权由张三所有,除老师外,未经允许不得拷贝本人作业 模块名称: 第一个模块 摘要: 本模块是我的第一个C语言作业,实现了一些简单的功能 其它说明: 无 模块历史: 张三于2006年9月20日创建本模块,email: 张三于2006年9月25日修改本模

7、块,email: 同上 修改原因:增加了一个输出正方形的函数 */ #include “stdio.h” #include “string.h” /* main函数说明 */ main() . ,模块说明示例: example.cpp,English Version,/* Author Info: Name: Author ID: Class: School: Email: Tel. Copyright (c) 2005 NJTU Module Name: An unabbreviated name for the module (not the filename) Abstract: Des

8、cription of what this module does Notes: Optional Additional notes about this module - things that may help the reader of this code later on. Examples are: algorithm description, special case conditions, references, etc. History: Created on mm/dd/yyyy by email-name Modified on mm/dd/yyyy by email-na

9、me Optional history description */,2. 函数说明规范,Function Specification,关于函数说明,对于作业中程序的任何一个函数,包括main函数,都需要写出函数的说明 一个良好的编程习惯: 写任何一个函数以前,第一步工作就是先把函数说明写出来,而不是直接先写代码,函数说明规范,/* 函数名称: 写出函数的名称 功能描述: 描述出函数具有的功能 函数参数: 输入输出参数说明,对每个参数都需要作出仔细说明 返回值: 返回值说明,或者标明无回值 模块历史: 谁于某年某月某日创建本模块,创建人email 谁于某年某月某日修改本模块,修改人email

10、修改原因:可有可无,根据需要添加 */,例子,/* 函数名称: main 功能描述: 输出 Hello world! 函数参数: 无 返回值: 无 模块历史: 张三于2006年9月20日创建本模块,email: */ void main() printf(Hello world!); ,English Version,/* Function Name: Function Description: Description of what the function does Arguments: | OUT | IN/OUT argument-name - description of argum

11、ent Return Value: return-value - description of return value or NONE History: Created on mm/dd/yyyy by email-name */,3. 代码注释,恰到好处的注释,1. 对重要变量说明其作用; 2. 对每一段函数代码加注释说明功能; 3. 对重要的语句加注释说明其功能; 4. 对重要的函数调用的参数加实际参数说明; 5. 在自己认为必要的地方加上注释 6. 可以采用/* */和/进行注释,4. 基本编辑规范要求,正确使用:缩进,空格,空行,缩进,根据语句间的层次关系采用缩进格式书写程序,每进一

12、层,往后缩进一层 函数内的变量声明与执行语句要缩进一层 缩进长函数调用语句 pMsg = ComReadMsgFromQueue( aServer, NULL, ComWait_c, lTimeOut ); 一个缩进层次为四个英文字符宽度 一般用Tab键进行缩进,定义Tab为四个英文字符宽度 许多开发工具编辑器如VC一般会自动帮你缩进,要加空格的场合,1. 在逗号后面和语句中间的分号后面加空格,如: int i, j, k; for (i = 0; i b a = b i = 0 3. 关键字两侧,如if () , 不要写成if() 4. 类型与指针说明符之间一定要加空格: char *szN

13、ame;,不要加空格的场合,1. 在结构成员引用符号.和-左右两加不加空格:pStud-szName, Student.nID 2. 不要在行尾加多余的空格或Tab 3. 函数名与左括号之间不要加空格: func() 4. 指针说明符号*与变量名间不要加空格: int *pInt; 不要写成: int * pInt; 5. 复合运算符中间不能加空格,否则会产生语法错误,如: a + = b a = b 都是错误的,空行与换行,1. 函数的变量说明与执行语句之间加上空行; 2. 每个函数内的主要功能块之间加空行表示区隔; 3. 一行语句不要写的太长,将长语句分成多行写; 4. 不要在一行中写多条

14、语句.,例子,int main() int i, j, nSum = 0; /变量说明 for (i = 0; i 10; i+) /执行代码 for (j = 0; j 10; j+) nSum += i; ,注意空格,空行,注意各层缩进,5. 标识符命名,Naming Indentifiers,标识符命名基本要求,1. 这里所指的标识符包括符号常量、变量、函数名、类型名、成员名、C+中的类名等需要编程者命名的各种文字符号 2. 标识符命名必须符合语法规则 3. 任何标识符的命名最好能有一定的含义 4. 标识符的命名尽量采用英文,5.1 符号常量命名规范,符号常量的命名用大写字母表示 如 #

15、define LENGTH 10 如果符号常量由多个单词构成,两个不同的单词之间可以用下划线连接 如 #define MAX_LEN 50,5.2 变量命名普通规范,1. 变量名一般需要反映变量的用途 如: int sum; 2. 如果变量名由多个单词构成,每个单词的首字符要大写 如: int TotalFiles;,5.3 变量命名与变量类型,在实际软件开发中,常见的规范强制要求能从变量名中看出变量的类型,因此,建议同学们一开始就养成这样的习惯。 使变量能反映类型的方法是在变量的前面加上各种前缀,由这些前缀反映变量的类型 对类型前缀规范,各种不同的软件开发环境可能会有不同规范,不同的软件企业或开发团队,也可能会有不同的规范,没有绝对的标准,但是这些规范都大同小异。,5.4 C常见变量前缀建议规范,5.5 关于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论