c++程序的设计规范标准
- 格式:doc
- 大小:179.50 KB
- 文档页数:57
ANSI C/C++程序设计规
文件编号: SDSI-QG-28-01-01
起草部门:
审核人:
批准人:
批准日期:2008年4月
版本标识: 1.0版
目录
1目的 (3)
2定义 (3)
3程序设计要求 (3)
4程序风格定义 (4)
4.1编程风格 (4)
4.1.1书写风格 (4)
4.1.2程序结构 (4)
4.1.3程序注释 (5)
4.1.4声明 (6)
4.1.5临时变量 (6)
4.2一些规则及建议: (6)
5命名规 (6)
5.1详细定义 (7)
5.1.1函数(Function) (7)
5.1.2变量命名规 (7)
5.1.3常用变量的规定: (8)
5.2类定义规 (8)
5.2.1类的命名 (8)
5.2.2类的注释 (8)
5.2.3类的声明 (9)
1目的
为使整个系统保持统一和一致的编程风格及技术,提高程序代码的规化程度,制定该部分的规。这些规可以提高编码质量、增强可读性、提高排错的容易程度、加强可维护性、以及提高代码的可重用性和可移植性。
1.1定义
程序块:是整个C/C++语言程序中完成某一细分功能的具有相对独立性的一段程序,其主要容包括注释、变量定义及程序正文三部分组成。
子程序块:程序块中的某一细分功能的程序块称为子程序块。
临时变量:临时变量是每次赋值的作用域较小,一般不应超过五行程序。临时变量的名字本身只是说明了该变量是一个临时的操作数,不具有任何意义,但在某一作用域代表不同的具体含义。
2程序设计要求
一、据所确定的标准进行程序设计。
二、模块的耦合度要高,模块间的耦合度要低。在修改一个模块时,尽量不要对其它模块造成影响,若影响较大,有必要重新规划模块。
三、每个程序模块的行数不限,但对于程序模块中相对独立性较高的程序块最好作成函数,每个函数的代码行数原则上不超过200行,经常使用的函数最好做成函数库,必须保证在整个系统中同名的函数有相同的定义。
四、尽量为程序块加上明确的汉语注释。对于较复杂的程序或算法需要注释文档,并在程序中注明注释文档及在文档中注明程序名。
3开发规
3.1风格规
3.1.1缩进风格
3.1.1.1概述
缩进用于提高代码的可阅读性,缩进通常采用TAB键来控制缩进风格,但为了不同TAB 值的问题,缩进采用空格缩进。在UE中,通常将TAB设置成为2个空格。
3.1.1.2要求描述
程序采用缩进风格,在需要缩进的地方使用2个空格进行缩进。
函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case 语句下的情况处理语句也要遵从语句缩进要求。
3.1.1.3示例
无
3.1.2代码块分隔
3.1.2.1概述
相对独立的短代码、变量定义需要分隔开,在读代码时可以方便的区分出独立代码。
3.1.2.2要求描述
在代码之间、变量定义之后使用一行空行来分隔代码,用于区分代码。
3.1.2.3示例
if (!valid_ni(ni))
{
... /* program code*/
}
repssn_ind = ssn_data[index].repssn_index;
repssn_ni = ssn_data[index].ni;
3.1.3长语句分隔
3.1.3.1概述
通常情况下屏幕长度可以容纳超过80例字符,但为适应多种屏幕(如VI),且一行过长大多数人心理无法承受,所以长语句要分隔。大多数情况下建议单行代码长度不要超过80个字符,通常情况下可以使用各种方法缩减单行代码。
3.1.3.2要求描述
较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
3.1.3.3示例
单条语句:
perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN
+ STAT_SIZE_PER_FRAM * sizeof( _UL );
act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied
= stat_poi[index].occupied;
act_task_table[taskno].duration_true_or_false
= SYS_get_sccp_statistic_state( stat_item );
report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER)
&& (n7stat_stat_item_valid (stat_item))
&& (act_task_table[taskno].result_data != 0));
循环、判断类:
if ((taskno < max_act_task_number)
&& (n7stat_stat_item_valid (stat_item)))
{
... /* program code*/
}
for (i = 0, j = 0; (i < BufferKeyword[word_index].word_length)
&& (j < NewKeyword.word_length); i++, j++)
{
... /* program code*/
}
for (i = 0, j = 0;
(i < first_word_length) && (j < second_word_length);
i++, j++)
{
... /* program code */
}
函数参数:
n7stat_str_compare((BYTE *) & stat_object,
(BYTE *) & (act_task_table[taskno].stat_object),
sizeof (_STAT_OBJECT));
n7stat_flash_act_duration( stat_item, frame_id *STAT_TASK_CHECK_NUMBER
+ index, stat_object );
3.1.4单行单句
3.1.
4.1概述
部分代码比较短,有些代码就多条语句写在一行,容易造成阅读困难。