结对做业之代码规范

前言:

通过老师评论作出修改,相比于以前简略的代码规范,此次花时间专门了解学习了一下其余大公司/开发者的代码规范,规范更完善了一些;html

代码风格:

  • 库的使用:

    尽可能不要引用没必要要的库,包括没必要要的头文件,或引用没必要要的程序集。注重细节可以减小生成时间,最小化出错概率,并给读者一个良好的印象。程序员

  • 缩进:

    缩进使用4个空格的方式。算法

  • 全局变量:

    尽可能减小使用全局变量。为了正确的使用全局变量,通常是将他们做为参数传入函数。不要在函数或类内部直接引用全局变量,由于这会引发一个反作用:在调用者不知情的状况下改变了全局变量的状态。这对于静态变量一样适用。若是须要修改全局变量,应该将其做为一个输出参数,或返回其一份全局变量的拷贝。编程

  • 变量的声明和初始化:

    在最小的,包含该局部变量的做用域块内声明它。通常若语言容许,就仅在使用前声明它们,不然就在做用域块的顶端声明,并必定在声明变量的时候初始化它们,并尽可能在声明和初始化或赋值置于同一行代码内。windows

  • 括号:

    在复杂的条件表达式中,用括号清楚的表示逻辑优先级。ide

  • 断行与空白的{ }行与分行:

    在定义不一样变量或对多个变量进行赋值时不要放在一行上,即多条语句不要放在一行上。程序结构风格使用断行和空白的{ }行,在程序调试时期须要单步执行须要断行,在程序复杂代码量大时空白{ }使结构清晰明了。每行代码限定为80字符宽,当一行装不下内容时,须要进行折行。函数

折行规则:学习

1. 在分号处折行;
2.在操做符前折行。操做符包括+,-,*,/,左括号,逗号,”&&”,”||”,问号,冒号,例外的状况是在逗号后折行;
3.当函数声明、定义、调用或 enum 声明中枚举操做符的参数列表参数较多,不能置于一行,则将每个列表元素置于单独的一行;
  • 注释:

    注释应看成为源代码的补充,而不是直译源代码。注释中应避免重复程序标识符,避免复制别处有的信息(此时可以使用一个指向信息的指针)。不然程序中的任何一处改动均可能须要多处进行相应的变更。若是其余地方没有进行所需的注释改动,将会致使误注释:这种结果比根本没有注释还要糟糕。
  1. 它们应当解释不能直接从源代码看出东西;它们不该复制语言的语法或语义。
  2. 它们应当帮助读者掌握背景中的概念、依赖性、特别是复杂的数据代码和算法。
  3. 它们应当突出:与代码或设计标准的不一样点、受限特性的使用、以及特殊的“技巧”。

i : 在每一函数定义代码段前,应该有一段注释,用于说明该函数的函数名,函数功能描述,输入参数描述,输出变量说明,算法描述。例:编码

/*
*--------------------------------------------------------------------------------
*  Member Name              :   成员函数名
*  Function Description     :   功能描述
*  Parameter Specification  :   输入参数描述  
*  Return Specification     :   返回变量说明 
*   Algorithm               :   算法描述        
*   Addtion                 :   附加说明,如调用说明,前置条件,后置条件。
*--------------------------------------------------------------------------------
*/

ii : 关键修改的地方应加注释说明。idea

/*
* Revision                  :  修改版本
* Revision Date and Time    : 修改日期与时间
* Mender                    : 修改人
* Revision Description      : 修改内容简要描述
*/
  • 命名规则:

  1. 对“匈牙利命名法”合理的简化,变量名尽可能使得程序员一眼便能看出其含义,明显易懂的变量类型能够不须要在其中体现;
  2. 采起简便缩写格式,对于能够简写表示的变量不须要过多描述;
  3. 避免没必要要的修饰词,若是删减修饰词程序不会变的难懂,那么即可删减;
  4. 使用下划线分隔变量名中的做用域标注和变量的语义;好比Word_Count;
    • i : 全部的类型/类/函数名都用Pascal形式:所 有单词的第一个字母都大写;

    • ii : 全部变量使用Camel形式,第一个单词所有小写,随后单词随Pascal形式;
    • iii : 常量全用大写的字母,用下划线分割单词。
    • iv : 静态变量加前缀s_(表示static)。
    • v : 若是不得已须要全局变量,则使全局变量加前缀g_(表示global)。

示例代码:

class Node; // 类名

class LeafNode; // 类名

void Draw(void); // 函数名

void SetValue(int value); // 函数名
BOOL flag;

int drawMode;
const int MAX = 100;

const int MAX_LENGTH = 100;
void Init(…)

{

static int s_initValue; // 静态变量

…

}
int g_howManyPeople; // 全局变量

int g_howMuchMoney; // 全局变量

参考文章:

C/C++编程规范

微软编程规范

以及中央研究院C++ 编码规范的word文档

相关文章
相关标签/搜索