软件编程规范总结

写在前面:
本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。

一、 版权和版本的声明

最近看了好多前辈的demo程序,一般都有以下几个内容:文件名、作者、版本信息、日期、摘要、更新日志(版本历史信息)

版权和版本的声明位于.c源文件,.h头文件开头,不过个人只在源文件设版权和版本的声明,因为头文件都是一些声明,一般改动不大,而且过多说明显得有点累赘。(这个看个人习惯)

二、头文件

头文件只作“声明”,不要存放“定义”,把定义都放到源文件里面,每一个.c源文件应有一个同名.h头文件;.c / .h文件不要做过多的包含(即不要把没用的也包含进去);禁止头文件循环包含;通常应将头文件和源文件分开保存,以便于维护和查看。

开头必备(防止头文件被重复引用)

#ifndef  __XXX_H
#define  __XXX_H                   //跟头文件名一样,全大写
 ………
#endif  /* __XXX_H */              //在后面备注是哪个#if的结尾

写完上面的然后到 #include 引用库,
引用标准库的头文件用#include <xxx.h> 格式,eg:#include <stdio.h>;
引用非标准库的头文件用#include “xxx.h” 格式,eg:#include “bsp.h”;

个人习惯把非标库的引用放在源文件上,以便查看调用了哪些头文件

三、 程序排版

虽然说程序的排版不会影响程序的运行(前提是你的程序是正确的),但是杂乱无章的程序会让人很难看懂,影响可读性,对于程序移植可能会浪费很多时间,甚至时间长了连自己都看不懂自己写的程序。

1、 适当空行、增加换行符以及空格:

首先,我们要知道空行跟换行符不会浪费内存,但并不代表我们可以滥用,过多的空行只会让程序显得过长,不好衔接查看,而对于代码的对齐我们常用空格跟换行符,那么问题来了,为什么有时候我们把移植过来的程序打开,有些会出现错乱,那是因为设置的空格符跟换行符所占用的空格不同,具体怎么设置自行百度,个人一般把换行符设为占用4个空格(因为好看hhh),空格符照样是对应单个空格。

个人喜好:

  • 在每个类声明之后、每个函数定义结束之后都要加空行;
  • 在函数里面,定义跟语句之间添加空行,以区分函数体内定义的区域;
  • 在函数体内一些特殊的语句,增加一个空行,以起注意;
  • “,”之后要留空格,eg:Function(int x, int y, int z);
  • 如果“;”不是一行的结束符号,其后要留空格,eg:for(initialization; condition; update);
  • 赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,例如:
    “ = ”、“ += ” 、“ >= ”、“ <= ”、“ + ”、“ * ”、“ % ”、“ && ”、“ || ”、“ << ”、“ ^ ”等二元操作符的前后应当加空格;
  • 一元操作符如“!”、“~”、“++”、“–”、“&”(地址运算符)等前后不加空格;

2、 命名(以下皆是个人习惯,不存在一定要求)

一般我们常用大小写字母混用,用下划线“_”分割词意,因此我们在命名一个标识符时要尽可能表达清楚,以避免混乱误解,而且一个好的标识符可以让我们省略不必要的注释。

  • 文件夹命名采用首字母用大写,文件则全用小写命名;
  • 建立的源文件跟头文件必须文件名一 一对应相同;
  • 函数命名采用单词首字母大写,能用缩写的尽量用缩写;
  • 形参命名使用其第一个字母为大写,后面为小写;
  • 变量命名:
    ①对于静态全局变量,在其前面增加“s_”前缀;
    ②对于全局变量,在其前面增加“g_”前缀;
    ③局部变量则全部为小写;
    ④静态局部变量,首个字母为大写;
    ⑤标志位用 bit定义(51内核)或 _Bool布尔型变量定义(须支持C99),并且在其后面添加“_flag”后缀;
  • 宏定义采用全大写;
  • 调试宏前面得加 _ ,eg: _DEBUG

3、 注释

要求:简单、明了、清楚、准确,不做复读机(即重复描述),保证注释跟代码一致

  • 函数内程序块的注释常采用“ / * … * / ”,并且放在该模块的前面,不许放在中间或者后面;
  • 行注释一般采用“ //… ”;
  • 每个函数前面都应有接口说明,主要包括:函数名称、功能、参数、返回值;
  • 每篇程序后面都应加上 /* - - END OF FILE - - */ 以示结尾;
  • 全局变量必须加注解;

编程可以说是一门艺术,良好的编程习惯会促使你更进一步,同样也需要日积月累,人生亦是如此!

最后,文章主要参考《高质量程序设计指南C++/C语言》 ---- 林锐

猜你喜欢

转载自blog.csdn.net/qq_42992084/article/details/84504274
今日推荐