c++编程规范学习笔记(一)

来源:互联网 发布:淘宝上买四轮电动车 编辑:程序博客网 时间:2024/06/05 20:49

这是自己通过学习《C++ Codeing Standards》时,做的学习笔记!

一共讲述了101条规则、准则和最佳实践!!!

 

组织与策划问题

第0条、 不要拘泥于小节

不要规定缩进多少,应该规定用缩进来体现代码的结构;

不要规定行的具体长度;

不要在命名方面规定过多,应该规定的是使用统一的命名规则;如类、函数和枚举的名称形如:LikeThis,变量名形如:likeThis,私有变量名形如:likeThis_,宏名形如:LIKE_THIS;

不要规定注释体例,应该编写有用的注释。

在编写函数时,最好是“单入口,单出口”(sese)。

第一条、用高警告级别,要干净利落的进行编译

高度重视警告:使用编译器的最高警告级别。应该要求构架是干净利落的,理解所有的警告。通过修改代码而不是降低警告级别来排除警告。

 

第三方头文件:无法修改的库头文件可能包含引起警告的构造,这是可以用自己的包含源头文件的版本将该文件包装起来,然后包含此包装文件;

未使用的函数参数:如果确实不需要该参数,那就直接删除该函数的参数名就行了。如

   point allocate(size_type numObjects,const void *localityHint = 0)

   {

         return static_cast<point>(mallocShared(numObjects *sizeo(t)));

   }

改成

   point allocate(size_type numObjects,const void */*localityHint*/ = 0)

   {

         return static_cast<point>(mallocShared(numObjects *sizeo(t)));

   }

 

定义从未使用过的变量:可以通过插入一个变量本身的求值表达式;

void Fun()

{

     Lock lock;

     lock;

     ...

}

 

变量使用前可能未初始化:初始化该变量;

 

遗漏return语句:如

int FUn(Color c)

{

switch(c)

{

case Red:return 2;

case Green:return 0;

case Blue:

case Black:return 1;

}

}

修改成

int FUn(Color c)

{

switch(c)

{

case Red:return 2;

case Green:return 0;

case Blue:

case Black:return 1;

deault:assert(!"should Never get here!");

          return -1;

}

}

 

有符号数/无符号数不匹配:强制转换.

 

第二条、使用自动构建系统

第三条、使用版本的控制系统

好记性不如烂笔头。请使用版本的控制系统(version control system,VCS)

 

第四条、在代码审查上投入

审查代码:更多的关注有主于提高质量。亮出自己的代码,阅读别人的代码。互相学习,彼此进步!

 

 

 


 

原创粉丝点击