2022年C语言编程规范 .pdf

上传人:Che****ry 文档编号:34260660 上传时间:2022-08-15 格式:PDF 页数:4 大小:52.68KB
返回 下载 相关 举报
2022年C语言编程规范 .pdf_第1页
第1页 / 共4页
2022年C语言编程规范 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年C语言编程规范 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言编程规范 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、编程规范V0.9一、文件结构1.1 头文件结构1)摘要2)作者、生成日期、修改日志(包括修改人、修改日期、修改处说明)3)预处理块4)函数和结构声明等使用 ifndef 、define、endif 防止头文件被重复引用用 #include 格式引用标准库头文件(编译器将从标准库目录开始搜索)用 #include ”filename.h ”格式引用非标准库的头文件(编译器将从用户的工作目录开始搜索)头文件只存放“声明”不存放“定义”不提倡使用全局变量,尽量不要在头文件中出现extern int value 这类声明1.2 定义文件的结构1)作者、生成日期、修改日志2)对一些头文件的引用3)程序的

2、实现体1.3 目录结构如果头文件数目比较多(如超过十个) ,通常应将头文件和定义文件分别保存于不同的目录,以便于维护。例如可将头文件保存于include 目录,将定义文件保存于source 目录(可以是多级目录)。( gcc中待考) 二、程序的版式 2.1 空行每个函数定义结束之后都要加空行相对独立的程序块之间、变量说明之后必须加空行2.2 代码行一行代码只做一件事情,如只定义一个变量,或只写一条语句if、for、while、do、case、switch、default等语句自占一行,执行语句不得紧跟其后。If、for、while、do 不论执行语句有多少都要加。尽量在定义变量的同时初始化该变

3、量(就近原则)2.3 代码行内的空格关键字之后要留空格。像if、for、 while 等关键字之后应留一个空格再跟左括号函数名之后不要留空格,紧跟左括号,以与关键字区别(向后紧跟,)、,、;向前紧跟,紧跟处不留空格,之后要留空格, 如Function(x, y, z) 。如果;不是一行的结束符号,其后要留空格,如for (initialization; condition; update) 赋值操作符、 比较操作符、 算术操作符、 逻辑操作符、 位域操作符, 如“=” 、 “+=” “=” 、“=” 、 “+” 、 “*” 、 “ %” 、 “&” 、 “ | ” 、 “”这类操作符前后不加空

4、格 对于表达式比较长的for 语句和 if 语句,为了紧凑起见可以适当地去掉一些空格,如for(i=0; i10; i+)和 if (a=b) & (ctmp,flag flg,message msg);较长的单词可取单词的头几个字母形成缩写(如statistic stat,increment inc)标识符的长度应当符合“min length&max information ”的原则采用“小写加下划线”的方式(cur_value)程序中不要出现仅靠大小写区分的相似标识符名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整

5、理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的作用域不同不会发生语法错误,但会使人误解变量的名字应当使用“名词”或者“形容词+名词”全局函数的名字应当使用“动词”或者“动词+名词”(动宾词组)尽量避免标识符中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要4.2 其他规则常量全用大写字母,用下划线分隔单词(如MAX_LENGTH )静态变量加前缀s_ (表示 stadic)如果不得已需要全局变量,则在全局变量前加g_ (表示 global)(如g_maxLength)五、

6、表达式和基本语句5.1 运算符的优先级如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级5.2 符合表达式避免使用过于复杂的复合表达式不要有多用途的复合表达式(如 d=(a=b+c)+r 应进行拆分)不要把程序中的复合表达式与“真正的数学表达式”混淆(如if (ab=compValue EPSION)&(x=compValue+EPSION)格式应当将指针变量用”=” 或 ”!= ” 与 NULL 比较(如if (p=NULL), 不要写成if (p=0) 或 if(p) 形式)注意不要把if (p=NULL) 误写成if (p=NULL)5.4 循环语句的效率在多重

7、循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层如果循环体内存在逻辑判断,并且循环次数很大,可能的话, 应将逻辑判断移到循环体的外面5.5 for 语句的循环控制变量不可在 for 循环体内修改循环变量,防止for 循环失去控制建议for 语句的循环控制变量的取值采用“半开半闭区间”的写法 (如 0=xN ,这样 N正好是循环的次数)5.6 switch 语句每个 case 语句的结尾不要忘了加break不要忘记最后的default 分支。即使程序不需要,也应保留default :break,防止别人误以为你忘了default处理5.7 goto 语句goto 语句尽量不用

8、六、函数设计6.1 参数的规则参数要写完整,不要只写参数的类型而省略参数名字。如果没有参数就用void 填充参数命名要恰当,顺序要合理。如果有参数之间的值传递,则目的参数在前,源参数在后不要有太多的参数,尽量控制在5 个以内名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 防止将函数的参数作为工作变量6.2 返回值的规则不要省略返回值的类型。C中不加类型说明的函数是按整型处理,容易被误解成void 类型函数名字与返回值类型在语义上

9、不可冲突。注意,C 标准库函数getchar 是 int 类型而不是char 类型不要将正常值和错误标志混在一起返回。正常值用输出参数获得,而错误标志用return语句返回6.3 其他建议函数的功能要单一,规模要小,尽量控制在200 行以内(不包括注释和空行)尽量避免函数带有“记忆”功能,相同的输入应当产生相同的输出。函数的静态局部变量是函数的“记忆”存储器,建议尽量少用。非调度函数应减少或防止控制参数,尽量只使用数据参数设计高扇入、合理扇出(小于7)的函数,即函数被多个函数调用,而本身调用的函数较少减少使用递归七、其他先优化数据结构和算法,再优化执行代码不要只追求紧凑的代码,因为紧凑的代码不

10、一定能产生高效的机器码分配的内存要记得释放,打开的文件操作完要关闭当心那些视觉上不易分辨的操作符发生书写错误,如“=” 、 “| ” , “&”等变量被创建之后应当及时把他们初始化当心变量的初值、缺省值错误,或者精度不够尽量使用显式的数据类型转换,避免让编译器进行隐式的类型转换当心变量发生上溢或下溢,数组的下标越界不要忘记编写错误处理程序,当心错误处理程序本身有误当心文件I/O 有误在函数体的“出口处” ,对 return 语句的正确性和效率进行检查。Return 语句不可返回指向“栈内存”的指针,因为该内存在函数体结束时自动销毁编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、

11、V 操作)等手段对其加以保护,防止多个进程用此函数时可能使全局变量变为不可知状态尽量使用标准库函数,不要重新编写已经存在的库函数把编译器的选项设置成最严格状态,如在gcc 中使用 Wall 选项(产生尽可能多的警告信息, Werror 选项(把所有的警告当成错误处理,在使用make 时很有用)编写代码时记得随时保存,并定期备份使用宏定义表达式时,要使用完备的括号 (如 #define RECTANGLE_AREA( a, b)( (a) * (b) )使用宏时,不允许参数发生变化主要参考:【1】 高质量 C+编程指南【2】 华为公司编程语法规范有什么需要修改的请联系名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁