码迷,mamicode.com
首页 > 其他好文 > 详细

《华为编程规范》

时间:2015-05-28 00:40:23      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

全局变量要有较详细的注释,包括对基功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。

示例:

1  /* The ErrorCode when SCCP translate.Global Title failure,as follows*/    变量作用
2 
3   /*0 - SUCCESS    1 - GT Table error   2 - GT error others - no use*/        变量取值范围
4 
5  /*only function SCCPTranslate()in this modual can modify it,and other*/     使用方法
6 
7 /*modual can visit it through call the function GetGTTransErrorCode()*/
8 
9 Byte g_GTTranErrorCode;

在程序块的结束行加注释标记,以表明程序块的结束。

例:

1   //end of for()
2 
3     //end of if(flg)
4 
5     //end of while(MAX_MIN)

标识符缩写

较短的单词可通过去掉“元音”形成缩写,较长的单词取单词的头几个字母形成缩写,一些单词有公认的缩写:

 temp -> tmp           flag->flg

 statistic -> stat         increment -> inc

 message -> msg

不要设计面面俱到,非常灵活的数据结构。容易引起误解和操作困难。

尽量用乘法或其它方法代替除法,特别是浮点运算中的除法。

 说明:浮点运算除法要占用较多的CPU资源。

  示例:     

1 #define PAI 3.1416
2 radius = circle_length/(2*PAI);

可以改写成:

1 #define PAI_RECIPROCAL (1/3.1416) 
2 radius = circle_length*PAI_RECIPROCAL/2;

 

过程/函数中申请的(为打开文件而使用的)文件句柄,在过程/函数退出之前要关闭。

说明:分配内存不释放以及文件句柄不关闭是较常见的错误。往往引起严重的后果。

使用宏时,不允许参数发生变化

例:

1 #define SQUARE(a) ((a)*(a)) 
2 int a = 5; 
3 int b; 
4 b = SQUARE (a++);// a = 7 ,执行两次自增
正确的用法是:
1 #define SQUARE(a) ((a)*(a)) 
2 int a = 5; 
3 int b; 
4 b = SQUARE (a); 
5 a++;//a=6

 

不可将布尔变量直接与TRUE,FALSE或者1,0进制比较。

TRUE的值究竟是什么值并没有统一的标准。例如,visual c++将TRUE定义为1,而visual basic则将TRUE定义为-1.
正确使用:
if(flg)
if(!flg)
类中的常量定义
例:
1 class A
2 {
3     ...
4     const int SIZE = 100;//error
5     int array[SIZE];//error
6 };


类中的常量用类中的枚举常量来实现。
1 class A
2 {
3      ...
4     enum{SIZE1 = 100, SIZE2 = 200};
5     int array1[SIZE1];//OK
6     int array2[SIZE2];//OK
7 };





《华为编程规范》

标签:

原文地址:http://www.cnblogs.com/codetravel/p/4534640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!