代码编写规范 您所在的位置:网站首页 中国观鸟手册在哪里买 代码编写规范

代码编写规范

2023-09-18 07:04| 来源: 网络整理| 查看: 265

文章目录 @[toc] 1.目标 2.排版格式 2.1 类及其排版格式 2.2 函数的声明与定义 2.3 空行 2.4 代码行 2.5 代码行内的空格 2.6 对齐 2.7 长行拆分 2.8 修饰符的位置 2.9 代码段中的预处理格式 2.10 被注释的代码 2.11 注释 3.命名规则 4.表达式和基本语句 4.1 运算符的优先级 4.2 复合表达式 4.3 避免直接使用数字作为标识符 4.4 if 语句 4.5 循环语句的效率 4.6 new的使用 5.常量 5.1 为什么需要常量 5.2 const 与 #define的比较 5.3 常量定义规则 6.函数 6.1 参数的规则 6.2 返回值的规则 7.建议 7.1 使用const 7.2 其他建议 1.目标

我们所认为的优秀程序员应该具备的能力是什么?高效的算法,优良的架构,设计模式,面向对象等等,这些我们每天挂在嘴上,喊着要学习的技能。确实,能很好的掌握这些技能是成为优秀程序员的条件,但是作为程序员最根本,最基础的是代码编写,如何编写高质量,可靠的,规范的代码,是作为一名合格程序员的基础和根本,本规范规定了我们编写代码的格式,排版,注释,函数,变量,命名等,从这些最基础的编码规范来纠正我们的一些编码错误,要写出高质量的代码这些都是第一步,只有把这个基础打扎实,我们才可能“建设”稳健的“代码大厦”。

2.排版格式

程序排版格式虽然不是十分严格的规范要求,但整个项目都服从统一的编程风格,这样使所有人在阅读和理解代码时更加容易。格式虽然不会影响程序的功能,但会影响可读性。程序的排版格式追求清晰、美观,是程序风格的重要构成因素。可以把程序的排版格式比喻为“书法”。好的“书法”可让人对程序一目了然,看得兴致勃勃。差的程序“书法”如螃蟹爬行,让人看得索然无味,更令维护者烦恼有加。请程序员们学习程序的“书法”,弥补大学计算机教育的漏洞,实在很有必要。

2.1 类及其排版格式 声明属性依次序是public:、protected:、private:。 关键字public,protected,private不要缩进,声明的函数和变量缩进一个制表符。 类声明前应加上注释,注明该类的主要作用。 不改变对象成员变量的类成员函数都应标记为const,可以预防意外的变动,提高程序的健壮性。 类中成员必须进行初始化,可以通过构造函数的初始化列表初始化成员或者写一个专门初始化成员的函数(如init())。 有继承关系的基类中析构函数一定要声明为虚函数。 为了防止头文件重复包含,应在头文件处加上#ifndef/#define/#endif宏。 函数和成员变量的声明分开。 类声明的基本格式如下:class MyClass : public OtherClass { public: MyClass(); MyClass(int var); ~MyClass() {} void someFunction(); void someFunctionThatDoesNothing() void set_some_var(int var) int some_var() const private: bool someInternalFunction(); private: int some_var_; int some_other_var_; }; 2.2 函数的声明与定义

返回类型和函数名在同一行,合适的话,参数也放在同一行。

返回值总是和函数名在同一行;参数列表的左圆括号总是和函数名在同一行。

函数名和左圆括号间没有空格;圆括号与参数间没有空格。

左大括号总是新起一行;右大括号总是单独位于函数最后一行。

函数的声明(头文件)和实现处(CPP)的所有形参名称必须保持一致。

函数的内容总与左括号保持一个制表符的缩进。

参数间的逗号总加一个空格。

函数的大小一般不要超过50行,函数越小,代码越容易维护。

函数声明前应加上注释,注明该函数的作用,如果该函数有比较多的参数,还应该加上参数含义和返回值的注释。

如果函数的参数是类对象,应使用对象的指针或引用来传递,以提高效率。

ReturnType ClassName::FunctionName(Type par_name1, Type par_name2) { DoSomething(); ... } 如果同行一行文本较多,容不下所有参数时: ReturnType ClassName::FunctionName(Type p_name1, Type p_name2, Type p_name3) { DoSomething(); ... }

如果函数为const的,关键字const应与最后一个参数位于同一行。

ReturnType FunctionName(Type par) const { ... } 2.3 空行

空行起着分隔程序段落的作用。空行得体(不过多也不过少)将使程序的布局更加清晰。空行不会浪费内存,虽然打印含有空行的程序是会多消耗一些纸张,但是值得。所以不要舍不得用空行。

在每个类声明之后、每个函数定义结束之后都要加空行。 // 空行 void Function1(…) { … } // 空行 void Function2(…) { … } 在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。 // 空行 while (condition) { statement1; // 空行 if (condition) { statement2; } else { statement3; } // 空行 statement4; } 2.4 代码行 一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。 if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。

示例2-4(a)为风格良好的代码行,示例2-4(b)为风格不良的代码行。

int width = 0; // 宽度 int height = 0; // 高度 int depth = 0; // 深度 2-4(a) int width, height, depth; // 宽度高度深度 2-4(b) x = a + b; y = c + d; z = e + f; 2-4(a) X = a + b; y = c + d; z = e + f; 2-4(b) if (width < height) { dosomething(); } for (initialization; condition; update) { dosomething(); } // 空行 other(); 2-4(a) if (width < height) dosomething(); for (initialization; condition; update) dosomething(); other(); 2-4(b) 示例2-4(a) 风格良好的代码行 示例2-4(b) 风格不良的代码行 在定义变量的同时必须初始化该变量。 如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。如果引用了未被初始化的变量,可能会导致程序错误。例如 <


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有