关于C语言编程书写规范的规则和建议

关于C语言编程书写规范的规则和建议

头文件

头文件由三部分内容组成:

1、头文件开头处的版权和版本声明。

2、预处理块。

3、函数和类结构声明等。

【规则】为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。

【规则】用 #include 格式来引用标准库的头文件(编译器将从标准库目录开始搜索).

【规则】用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)

【建议】头文件中只存放“声明”而不存放“定义”

【建议】不提倡使用全局变量,尽量不要在头文件中出现象extern int value 这类声明。

程序的版式

空行

【规则】在每个类声明之后、每个函数定义结束之后都要加空行。

【规则】在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。

代码行

【规则】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。

【规则】if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。

【建议】尽可能在定义变量的同时初始化该变量(就近原则)

代码行内的空格

【规则】关键字之后要留空格。象const、virtual、inline、case 等关键字之后至少要留一个空格,否则无法辨析关键字。象if、for、while等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。

【规则】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。

【规则】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。

【规则】‘,’之后要留空格,如Function(x, y, z)。如果‘;’不是一行的结束符号,其后要留空格。

【规则】赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<

【规则】一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格。

【规则】象“[]”、“.”、“->”这类操作符前后不加空格。

【建议】对于表达式比较长的for语句和if语句,为了紧凑可以适当地去掉一些空格,如for (i=0; i<10; i++)和if ((a<=b) && (c<=d))

对齐

【规则】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。

【规则】{ }之内的代码块在‘{’右边数格处左对齐。

长行拆分

【规则】代码行最大长度宜控制在70至80个字符以内。代码行不要过长,否则眼睛看不过来,也不便于打印。

【规则】长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。

修饰符的位置

【规则】应当将修饰符 * 和 & 紧靠变量名

注释

注释符为“/*…*/”。C++语言中,程序块的注释常采用“/*…*/”,行注释一般采用“//…”。注释通常用于:

版本、版权声明;

函数接口说明;

重要的代码行或段落提示。

【规则】注释是对代码的“提示”,而不是文档。程序中的注释不可喧宾夺主,注释太多了会让人眼花缭乱。注释的花样要少。

【规则】如果代码本来就是清楚的,则不必加注释。否则多此一举,令人厌烦。例如 i++; // i 加 1,多余的注释

【规则】边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。

【规则】注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而有害。

【规则】尽量避免在注释中使用缩写,特别是不常用缩写。

【规则】注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。

【规则】当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,便于阅读。

命名规则

共性规则

【规则】标识符应当直观且可以拼读,可望文知意,不必进行“解码”。

标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。程序中的英文单词一般不会太复杂,用词应当准确。例如不要把CurrentValue写成NowValue。

【规则】标识符的长度应当符合“min-length && max-information”原则。

【规则】命名规则尽量与所采用的操作系统或开发工具的风格保持一致。

例如Windows应用程序的标识符通常采用“大小写”混排的方式,如AddChild。而Unix应用程序的标识符通常采用“小写加下划线”的方式,如add_child。别把这两类风格混在一起用。

【规则】程

C语言编程的书写规则,关于C语言编程书写规范的规则和建议.doc相关推荐

  1. c语言考试成绩评价规则编程,上海市高等学校计算机二级C语言程序设计考试大纲.doc...

    上海市高等学校计算机二级C语言程序设计考试大纲.doc 上海市高等学校计算机二级C语言程序设计考试大纲上海市高等学校计算机等级考试(二级)C 程序设计考试大纲上海市高等学校计算机等级考试(二级)C 程 ...

  2. C语言初学者编程规范—命名规则

    原文地址:C语言初学者编程规范-命名规则 C是一门朴素的语言,你使用的命名也应该这样.与Modula-2和Pascal程序员不同,C程序员不使用诸如"ThisVariableIsATempo ...

  3. 代码检查规则:Java语言案例详解

    本节课程为<代码检查规则:Java语言案例详解>, 通常情况下Java的代码检查规则可以分为以下十类: 接下来,让我们具体来看看每个分类的内容. 一.源文件规范 该类规范主要从文件名.文件 ...

  4. 可编程CDN – EdgeScript应用场景、语言速览和实操演示

    5月8日下午15:00,CDN云课堂的第二期,阿里云CDN团队技术专家拓山为大家带来了<可编程CDN – EdgeScript实践>主题技术分享.本次分享通过对阿里云CDN成长到当前体量的 ...

  5. 【Java并发编程】之十六:深入Java内存模型——happen-before规则及其对DCL的分析(含代码)...

    Java并发编程系列 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/mmc_maodun/article/details/17348313 转载请注 ...

  6. c语言小学生加法考试题程序4,c语言编程题与答案4.doc

    c语言编程题与答案4 c语言编程题及答案(三) 1. 给小学生出加法考试题 编写一个程序,给学生出一道加法运算题,然后判断学生输入的答案对错与否,按下列要求以循序渐进的方式编程. 程序1 通过输入两个 ...

  7. 九宫锁屏图案有多少种c语言编程,手机九宫格图案解锁问题,编程高手戳进来!...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 数学吧里看到的一个有趣问题,题目描述很简单: 求手机九宫格图案解锁一共有多少种答案.规则大家应该都知道,至少连四个点,最多连九个点,一条直线上的三个点只有 ...

  8. python变量词是什么意思_Python语言基本语法元素之变量,变量的含义及命名规则...

    教学是对知识的二次加工. 笔者希望给python初学者提供帮助.上一篇文章写了Python语言基本语法元素之格式框架:注释.缩进.续行符 这里继续,Python语言基本语法元素之变量. 我们来看看前4 ...

  9. python语言保留字可以用变量名来命名_Python语言基本语法元素之变量,变量的含义及命名规则...

    教学是对知识的二次加工. 笔者希望给python初学者提供帮助.上一篇文章写了Python语言基本语法元素之格式框架:注释.缩进.续行符 这里继续,Python语言基本语法元素之变量. 我们来看看前4 ...

最新文章

  1. IE下javascript的console方法
  2. nuxt渲染html文件,Nuxt页面级缓存
  3. python中的doc_基于Python获取docx/doc文件内容代码解析
  4. 【ASP.NET开发】ASP.NET(MVC)三层架构知识的学习总结
  5. docker run 原理
  6. 多线程生产者和消费者
  7. visual MySQL 教程_Visual Studio操作MySQL的详细步骤
  8. 逻辑漏洞——业务逻辑问题
  9. 【Python】获取星期字符串
  10. Promise机制(持续更新中)
  11. mine layer(2008 World Final C)
  12. java进阶06 线程初探
  13. Ansible之五:常用模块
  14. java 字符串截取_java截取字符串几种方式
  15. SQL语句之数据库之创建视图
  16. C++ Primer 第5版--练习8.5
  17. matlab取值只能为整数,运行时提示Size 输入必须为整数
  18. 使用阿里云和gcr.azk8s.cn镜像安装Kubernetes (K8s)
  19. php银行卡的验证规则,php验证银行卡号码的正确性、规范性
  20. 宇视200W 相机一天所占存储空间是多少

热门文章

  1. criter查询详细
  2. 线程池有几种?分别有什么特点
  3. linux 5432端口,无法连接到端口5432上的postgresql
  4. 设置边框颜色渐变及背景颜色渐变
  5. linux-mptcp调度算法,MPTCP的轮询调度算法
  6. Matlab:图形绘制
  7. Android资源之String (四): plurals
  8. 解决wget下载文件名乱码的一些方法
  9. Linux CentOs 下 安装 SCIP + PySCIPOpt
  10. Django纪实:模板路径的设置