算法第一章作业

华为代码规范

一、排版

1、程序块采用缩进风格编写,缩进空格数为4

2、相对独立的程序块之间、变量说明之间必须加空行

如:if(!valid_ni(ni))

{..

}

//此处空行必须加

Repssn_ind = ssn_data[index].ni;

Repssn_ind = ssn_data[index].repssn_index;

3、大于80字符的语句或者循环、判断等语句中有较长表达式或语句要分多行书写,长表达是要在低优先级操作符处划分新行,操作符要放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读

如:

1Per_count_msg.head.len = No7_To_STAT_PERM_COUNT_LEN

                        + STAT_SIZE_PER_FRA*sizeof(_UL);

(2)if((tasko < max_axt_task_number)

        &&(n7stat_stat_item_valid(stat_item)))

     {

       .....

     }

4、不允许把多个短语句写在同一行

  int x = 0; double y = 9;//不规范

5、iffor等判断或循环语句自占一行,同时一定要加括号{}

 不规范:if(x==0) return;

 规范:  if(x == 0)

         {

            return;

         }

6、对齐只使用空格键,不适用TAB键,防止阅读器器不同,程序布局不整齐

7、程序块的分界符(c/c++语言中的大括号 “{}”应独占一行而且位于同一列,同时与引用语句左对齐

不规范:

1for(...){

             }

2for(...)

      {

         ....

      }

规范:

for(...)

{

.....

}

8、关于空格:

(1)逗号分号只在后面加空格

     int a, b, c;

(2)比较运算符,赋值操作符”=”、”+=”,算术操作符”+”、”%”,逻辑操作符”&&”、”&”,位运算符”<<”、”^”等双目运算符前后加空格,如:

for(a >= 0)

{

   A = C + D;

   A *= 2;

}  

(3)”!”、”~”、”++”、”--”等单目运算符和”->”、”.”前后不加空格

  P = ‘a’;

  ++i;

  K->id = pid;

二、注释

1、源代码有效注释量在百分之二十以上,不宜过少也不要过多,注释统一格式,使用”/*....*/

2、函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用关系,如下实例:

/*

Function:   //函数名称

Description: //函数功能、性能等的描述

Calls:      //被本函数调用的函数清单

Called By:   //调用本函数的函数清单

Table Accessed: //被访问的表(此项仅对于牵扯到数据库操作的程序)

Table Updated: ///被修改的表(此项仅对于牵扯到数据库操作的程序)

Input: //输入参数说明,包括每个参数的作用、取值说明及参数间关系。

Output://对输出参数的说明。

Return://函数返回值的说明

Others://其它说明

*/

3、注释的内容要清楚、明了,含义准确,防止注释二义性。

4、避免在注释中使用缩写,特别是非常用缩写。

5注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)

相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。

示例:如下例子不符合规范。

1:/* get replicate sub system index and net indicator */

repssn_ind = ssn_data [index] .repssn_index;

repssn_ni =ssn_data [index] .ni;

6数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须加以注释。对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释放在此域的右方。

7全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及

存取时注意事项等的说明。

 

 

三、标识符命名

1、标识符命名要清晰、明了,有明确含义,同时使用完整单词或大家可理解的缩写

2、命名若使用特殊约定或缩写,需注释说明

3、命名有自己的风格,且不要来回变化

4、除特殊应用,避免以下划线结束的命名

四、函数及过程

1、函数规模尽量在200行内,不包括注释

2、一个函数仅完成一个功能

3、为简单函数编写代码

如:value = (a > b) ? a : b;

  改为

int max (int a ,int b)

{

   return ((a > b) ? a: b))

}

4、避免设计多参数函数

5、函数名能准确描述函数的功能

6、防止将无关联的语句放在一个函数

例:不规范

void Init_Var()

{

  Rect.length = 0;

  Rect.width = 0;//初始化矩形长和宽

  Point.x = 0;

  Point.y = 10;//初始化点的横纵坐标;

}

  下面是读后感的链接:https://www.cnblogs.com/hyy66159/p/15359047.html

posted @ 2021-10-01 11:30  式微之子于微  阅读(38)  评论(0编辑  收藏  举报