目录
(3)避免进行大量构造及析构操作
(4)尽量在变量声明时进行初始化,且避免进行无效的初始化
(5)尽量避免全局函数和全局变量,使用命名空间或static关键字等进行作用域限制
什么是C++的编程规范,编程规范重要吗?
当然重要啦,你想想一个团队里面好几个程序猿,每个人都有自己的编程习惯,那么以后维护代码的那个人不是得类似,举个例子,下面的代码:
- void cc(int i){
- int j;
- if(i > 5) j = 0;
- else j = 1;
- }
在上面这个代码函数中,你知道这个函数的功能是什么吗?包括里面每个变量的含义,代表了什么?不知道吧。这个代码量还算是比较少,一旦你的代码量达到几万行,然后所有变量和函数都这样定义,那我估计你自己都要疯掉,不止你的同事。所以在日常的编程中,需要注意编程要规范,相反地,你来看看下面的代码,就算没还没有写注释,那我们也能猜到这个函数大概的功能是链接电脑的功能,并且会传入一个“线”的参数,然后判断线的数量大于5条,就给结果 result 赋值0。
- void ConnectComputer(int line){
- int result;
- if(line > 5) result= 0;
- else result= 1;
- }
其次,一定要养成编写代码边注释的习惯:
- /*
- * 函数功能:链接电脑的函数
- * 函数参数:int line
- * 函数返回值:void
- */
- void ConnectComputer(int line){
- int result;
- if(line > 5) result= 0;
- else result= 1;
- }
针对小编在工作中和参考一些文档整理出来一些编程的规范,现在就无偿的献给大家。
C++文件名全部都是小写,且单词之间用_分割,如:gloable.cpp
所有文件均需要统一格式的版权信息
在.h中使用#define来防止头文件被多重包含,并在最后注释出宏的名字,命名格式为:
- // 格式:
- <PROJECT>_<FILE>_H_
-
- // 例子:假设在工程SERVEN中的一个COUNT.cpp
- # ifndef SERVEN_COUNT_H_
- # define SERVEN_COUNT_H_
- ...
- # endif
尽量避免使用前置声明,优先使用#include来包含相关头文件:
- 包含头文件:#include "timer.h" // 优先使用
- 前置声明:class Timer; // 尽量避免
#include的包含顺序:
头文件的包含顺序为:当前.cpp文件直接关联的头文件、C库文件、C++库文件、其他项目的头文件、本项目中的其他头文件。
- namespace mynamespace{
- // 注意不要使用缩进...
- } // namespace mynamespace
- // 禁止 —— 污染命名空间
- using namespace mynamespace;
- // 循环调用构造函数:
- for (int i = 0; i < 1000; i++) {
- SERVEN s; // 低效,构造函数和析构函数分别调用1000次
- s.print(i);
- }
-
-
- // 改为下面的方式:
- SERVEN s; // 构造函数和析构函数只调用1次
- for (int i = 0; i < 1000; i++) {
- s.print(i);
- }
- int i;i = f(); // 坏 —— 声明与初始化分离
- int j = g(); // 好 —— 声明时初始化
- int k = 0; // 坏 —— 无效初始化
- k = 0xff;