C代码编写规范.doc_第1页
C代码编写规范.doc_第2页
C代码编写规范.doc_第3页
C代码编写规范.doc_第4页
C代码编写规范.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

C编程规范1 布局与风格总体目标:准确表现代码的逻辑结构;改善可读性;经的起修改。1. 总体布局采用纯块布局,即 “” “” 垂直对齐;int func(int x, int y, int z) ( ) . return 0;int func(int x, int y, int z) ( ) . return 0;缩进Tab为4字节对于复杂表达式,将条件分格在几行上一行代码宽度应不超过 80 个字符,对于较长的语句,应该分行书写,增加代码的可读性。不要将赋值语句按等号对齐;if (p != NULL) ( )delete p;if (p != NULL) delete p; ( )每行仅写一条语句if (p != NULL) ( )delete p;if (p != NULL) delete p; ( )每行仅写一条语句2. 空格l 需要有空格的地方双目运算符两侧,需要留有空格。如 “=”, “+=”,“=”, “=”, “+”, “&”, “”, “”等。x += y; ( )x+=y; ( )val = (mask 3) ( )val=(mask3); ( )函数参数之间逗号,分隔后面要留有空格。void func(int x, int y, int z) ( )void func(int x,int y,int z) ( )for 语句分号;分隔后面要留有空格for (i=0; i10; i+) ( )for (i=0;i10;i+) ( )l 不要留空格的地方函数名与紧跟的左括号(之间,不应有空格void func(int x, int y, int z) ( )void func (int x, int y, int z) ( )左括号的右边,以及右括号的左边,不要有空格if (x = y) ( )if ( x = y ) ( )一目运算符前后不加空格,如!,+, &(取地址符)等。i+;char *p = &tmp;,.操作符前后不加空格tmp = p-size; ( )tmp = p - size; ( )limit = packet.size; ( )limit = packet . size; ( )x = array2; ( )x = array 2; ( )x = array 2 ; ( )对于表达式较长的语句,应适当的去掉一些空格,以保证代码的紧凑性if (x=100) | (x50) & (y!=0) ( )if (i=0; i100; i+) ( )if (i=0; i 100; i+) ( )3. 空行函数定义的前后,均需要适当的空行。- 空行void func1(int x).- 空行void func2(void).- 空行在函数体内,在一组变量定义完之后,需要适当空行。void func(void *p)int x = 0;void *tmp = NULL;- 空行if (p != NULL).4. 注释布局a) 注释的缩进要与相应代码一致;5. 子程序布局a) 用空行分隔子程序的头、数据、常量声明以及子程序体之间。b) 函数参数布局顺序,输入参数、输入输出参数、输出参数、默认参数。6. 文件布局a) 源文件 (.c)b) 头文件 (.h);c) 文件的命名与实现的功能相关2 注释总体目标:注释易于维护、清晰明了,不要随意添加无关注释。1. 行尾注释a) 行尾注释必须简短;b) 数据声明用行尾注释;c) 用行尾注释标记块,如 while ,if ,#endif 等,特别是代码块很大时;2. 代码段注释a) 要表达代码段意图;b) 注重“为何做”(why)而不是“怎么做”(how);c) 让每个注释都有用;d) 说明非常规做法;e) 不用缩略语;f) 将主次注释区分开;g) 对错误或语言环境独特点加注释;3. 数据声明注释a) 注释 数值单位;b) 对数值的取值范围注释;c) 注释编码含义;如 1代表直流电,2代表交流电,3未确定;d) 注释对输入数据的限制;e) 注释全局数据;4. 子程序注释 a) 分清输入和输出数据;/*! 函数说明param aText in/out 参数说明 主要用于函式说明中, param aPos in 只是输入return 返回值 后面接函数传回值的说明。用于function的批注中。*/void DrawText(char *aText,TPoint aPos);b) 对局限性作注释;c) 注释算法来源;d) 说明子程序的全局效果;5. 文件注释a) 说明文件的意图和内容;b) 将名字、电子邮件或电话放到注释块中;c) 包含版本信息;d) 包含法律通告;/*-file文件名称ingroup公司名称或者工作组author作者date最后版本时间brief这里是说明,比如功能和注意的地方等等history创建时间(C) Copyright 1993-2004 Steven C. McConnell.All Rights Reserved.-*/6. 问题修改注释采用 Visual Assist X格式 ,快捷键 /-/ MM/DD/YYYY UserName 描述3 命名总体规则:禁止以下划线开头命名变量,因为下划线的是系统指定的非标准库符号。1. C一般规则:l c 和 ch 是字符变量l i 和 j 是整数下标l n 表示某物的数量l p是指针l s 是字符串l 预处理宏全部大写(ALL_CAPS)l 子程序名全部小写,下划线_ 分割(all_lowercase)2. 类型名:l 模块内部使用的类型,混合使用大小写,首字母大写:TypeNamel 模块全局使用的类型,加模块名_前缀: Mex_TypeName, HTML_Pagel 枚举类型命名,采用前缀命名方式,如enum ColorColor_Red,Color_Green,.3. 具名常量: 字母全部都要大写,单词间使用“_”分割A) 单一程序或者模块私用的具名常量全部大小,例如 ROWS_MAXB) 全局具名常量全部大写,并以G_模块名做为前缀,比如 G_SCREEN_ROWS_MAX4. 宏定义: 全部大写,并以G_模块名做为前缀,比如 G_SCREEN_LOCATION()5. 变量命名:l 全局变量以 g_ 作为前缀,单词首字母大些int g_WindowSize;l 局部变量混合使用大小写,首字母小写。int renderCount;l 为状态变量命名,赋值要有自描述意义坏的命名:if(flag =0x0f) .好的命名if (statusFlag=SYSTEM_CLOSE).6. 函数命名l 局部函数,是在模块内部使用,采用小写命名,以下划线分割convert_color_rgb888_to_rgb565();l 全局变量,以模块名_做为前缀,函数名采用大小写混合,首字母大写。GDI_GetScreenHeight();GDI_GetScreenWidth();7. 应该避免的命名a) 避免使用令人误解的名字或缩写;如 “Fig and Almond Season”缩写成 FALSE ;b) 避免使用具有相似含义的名字;如 fileNumber 和 fileIndex; recordNum 和 numRecord;c) 避免使用具有不同含义但却有相似名字的变量;如 clientRecords 和 clientReports;d) 避免使用发音相近的名字;如 Goal Donor 和 Gold owner;e) 避免在名字中使用数字;如 file1,file2f) 避免在名字中拼错单词;如 highlight 为 hilite,hilightg) 避免使用英语中常常拼错的单词;如 absence,ascend,aummulate,calenderh) 不要仅靠大小写来区分变量名;如 frd 代表 fired,FRD 代表 final review duty;i) 避免使用多种自然语言;如 color 还是 colour , check 还是 cheque;j) 避免使用标准类型、变量和子程序的名字;如 使用关键字作变量名;k) 不要使用与变量含义完全无关的名字;如 使用男朋友、妻子的名字命名;l) 避免在名字中包含易混淆的字符;如 :很难区分 1(数字1) 和 l(小写的字母L),(1和I(大写字母i)),

温馨提示

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

评论

0/150

提交评论