华为C语言软件编程规范和范例

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

/* The ErrorCode when SCCP translate */

/* Global Title failure, as follows */ // 变量作用、含义 /* 0 - SUCCESS 1 - GT Table error */

/* 2 - GT error Others - no use */ // 变量取值范围 /* only function SCCPTranslate() in */ /* this modual can modify it, and other */ /* module can visit it through call */

/* the function GetGTTransErrorCode() */ // 使用方法 BYTE g_GTTranErrorCode;

12-12 :注释与所描述内容进行同样的缩排

说明:可使程序排版整齐,并方便注释的阅读与理解。 示例:如下例子,排版不整齐,阅读稍感不方便。 void example_fun( void ) {

/* code one comments */ CodeBlock One

/* code two comments */ CodeBlock Two }

应改为如下布局。

void example_fun( void )

{

/* code one comments */ CodeBlock One

/* code two comments */ CodeBlock Two }

12-13 :将注释与其上面的代码用空行隔开 示例:如下例子,显得代码过于紧凑。 /* code one comments */ program code one /* code two comments */ program code two

应如下书写

/* code one comments */ program code one

/* code two comments */ program code two

12-14 :对变量的定义和分支语句(条件分支、循环语句等)必须编写注释 说明:这些语句往往是程序实现某一特定功能的关键,对于维护人员来说,良好的注释帮助更好的理解程序,有时甚至优于看设计文档。

12-15 :对于switch 语句下的case 语句,如果因为特殊情况需要处理完一个case 后进入下一个case 处理,必须在该case 语句处理完、下一个case 语句前加上明确的注释

说明:这样比较清楚程序编写者的意图,有效防止无故遗漏break语句。

示例(注意斜体加粗部分): case CMD_UP: ProcessUp(); break; case CMD_DOWN: ProcessDown(); break; case CMD_FWD: ProcessFwd();

if (...) { ... break; } else {

ProcessCFW_B(); // now jump into case CMD_A }

case CMD_A: ProcessA(); break; case CMD_B: ProcessB(); break; case CMD_C: ProcessC(); break; case CMD_D: ProcessD();

break; ...

?2-1 :避免在一行代码或表达式的中间插入注释

说明:除非必要,不应在代码或表达中间插入注释,否则容易使代码可理解性变差。

?2-2 :通过对函数或过程、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的

说明:清晰准确的函数、变量等的命名,可增加代码可读性,并减少不必要的注释。

?2-3 :在代码的功能、意图层次上进行注释,提供有用、额外的信息

说明:注释的目的是解释代码的目的、功能和采用的方法,提供代码以外的信息,帮助读者理解代码,防止没必要的重复注释信息。

示例:如下注释意义不大。

/* if receive_flag is TRUE */ if (receive_flag)

而如下的注释则给出了额外有用的信息。

/* if mtp receive a message from links */ if (receive_flag)

?2-4 :在程序块的结束行右方加注释标记,以表明某程序块的结束

说明:当代码段较长,特别是多重嵌套时,这样做可以使代码更清晰,更便于阅读。

示例:参见如下例子。

if (...) {

// program code

while (index < MAX_INDEX) {

// program code

} /* end of while (index < MAX_INDEX) */ // 指明该条while语句结束

} /* end of if (...)*/ // 指明是哪条if语句结束

?2-5 :注释格式尽量统一,建议使用“/* ?? */”

?2-6 :注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,建议多使用中文,除非能用非常流利准确的英文表达

说明:注释语言不统一,影响程序易读性和外观排版,出于对维护人员的考虑,建议使用中文。

〔三〕 =====[ 标识符命名 ]=======

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4