华为C++语言通用编程规范
- 格式:pdf
- 大小:926.12 KB
- 文档页数:66
目录1 排版62 注释113 标识符命名184 可读性205 变量、结构226 函数、过程287 可测性368 程序效率409 质量保证4410 代码编辑、编译、审查5011 代码测试、维护5212 宏531 排版¹1-1:程序块要采用缩进风格编写,缩进的空格数为4个。
说明:对于由开发工具自动生成的代码可以有不一致。
¹1-2:相对独立的程序块之间、变量说明之后必须加空行。
示例:如下例子不符合规范。
if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;应如下书写if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;¹1-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
示例: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));¹1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
c语言编程规范C语言是一种广泛使用的编程语言,为了使代码可读性强,易于维护,编写出高质量的C语言代码,需要遵守一些编程规范。
1. 命名规范:- 使用有意义的变量和函数名称,避免使用缩写或不明确的名称。
- 变量和函数名称使用小驼峰式命名,以单词首字母小写,后续的单词首字母大写。
- 宏常量使用全部大写字母,并用下划线分隔单词。
2. 注释规范:- 使用注释来解释代码的逻辑、功能或者算法,提高代码的可读性。
- 在函数开头可以用注释来描述函数的输入、输出及功能。
- 注释应该与代码对齐,避免过长或过短,同时避免注释代码。
3. 缩进和空格规范:- 使用合适的缩进,增加代码的可读性。
- 使用4个空格作为一次缩进,而不是使用Tab字符。
- 在运算符和逗号后加一个空格,使代码更易读。
- 在大括号前加一个空格,与控制流语句对齐。
4. 代码结构规范:- 将相关功能的代码块放在一起,便于阅读和维护。
- 逻辑层次清晰,函数和类方法要尽量短小,每个函数的功能单一、复用性强。
- 相关联的变量放在一起声明,并按照类型顺序排序。
- 避免过长的行,推荐每行代码不超过80个字符。
5. 错误处理规范:- 在代码中检查错误并进行适当的处理,避免代码崩溃或者产生不可预料的结果。
- 使用错误码或者异常来处理错误,避免使用魔法数字。
- 使用合适的方式记录错误信息,方便调试和定位问题。
6. 动态内存管理规范:- 在使用动态内存分配时,需要及时释放分配的资源,避免内存泄漏。
- 需要注意避免指针悬挂和使用已经释放的内存。
7. 注重效率和安全性:- 在编写代码时注重代码的性能和效率,避免使用低效的算法。
- 在处理用户输入或者系统API调用时,需要对输入进行有效性检查,避免安全漏洞。
8. 一致性和规范性:- 保持代码的一致性和规范性,遵循编程规范,方便团队协作和代码维护。
- 遵循公司或项目的编码规范,保持团队的代码风格一致。
以上是C语言编程规范的一些基本要点,通过遵守这些规范,可以提高代码的可读性、可维护性和代码质量,使得代码更加规范和高效。
百度文库- 让每个人平等地提升自我目录1 排版 (2)4 可读性 (11)6 函数、过程 (13)7 可测性 (14)1 排版¹1-1:程序块要采用缩进风格编写,缩进的空格数为4个。
说明:对于由开发工具自动生成的代码可以有不一致。
¹1-2:相对独立的程序块之间、变量说明之后必须加空行。
示例:如下例子不符合规范。
if (!valid_ni(ni)){... epssn_index;repssn_ni = ssn_data[index].ni;应如下书写if (!valid_ni(ni)){... epssn_index;repssn_ni = ssn_data[index].ni;¹1-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
示例:= 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));¹1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
华为软件编程规范和范例1 排版1-1:程序块要采用缩进风格编写,缩进的空格数为4个。
1-2:相对独立的程序块之间、变量说明之后必须加空行。
示例:如下例子不符合规范。
if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;应如下书写if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;1-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
示例: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));1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
华为软件编程规范和范例[ 华为软件编程规范和范例]一、排版二、注释三、标识符命名四、可读性五、变量、结构六、函数、过程七、可测性八、程序效率九、质量保证十、代码编辑、编译、审查十一、代码测试、维护十二、宏〔一〕=====[排版]¹1-1:程序块要采用缩进风格编写,缩进的空格数为4个说明:对于由开发工具自动生成的代码可以有不一致。
¹1-2:相对独立的程序块之间、变量说明之后必须加空行示例:如下例子不符合规范。
if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni;应如下书写if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni;¹1-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读示例: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));¹1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首示例: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}¹1-5:若函数或过程中的参数较长,则要进行适当的划分示例: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 );¹1-6:不允许把多个短语句写在一行中,即一行只写一条语句示例:如下例子不符合规范。
华为c语言编程规范华为C语言编程规范1. 命名规范:- 变量、函数、宏名使用小写字母和下划线的组合,如:int my_variable;- 宏名全部大写,并用下划线分隔单词,如:#defineMAX_NUM 100;- 结构体命名使用大驼峰命名法,如:typedef struct MyStruct; - 文件名使用小写字母和下划线的组合,如:my_file.c;2. 缩进与换行:- 使用4个空格进行缩进,不使用Tab键;- 换行时,尽量将操作符放在新行开头,如:a = b +c;- if、for、while等关键字后的括号与关键字之间不换行;- 如果一行超过80个字符,应该进行换行;3. 注释规范:- 使用//进行单行注释;- 使用/**/进行多行注释;- 对代码的重点或逻辑进行注释,并保持注释和代码同步更新;- 不使用无意义的注释;4. 函数与变量规范:- 函数应该具有明确的功能,并使用动词开头;- 变量必须在使用前进行声明,并尽量减少全局变量的使用; - 变量名应该具有描述性,并易于理解;- 不要使用具有歧义或过于简单的变量名;- 变量应该在定义的同时初始化;5. 语法与逻辑规范:- 不要在一个语句中定义多个变量;- 避免使用goto语句;- 比较变量和常量时,应该将变量放在前面,如:if (x == 0); - 不要使用宏定义来替换函数,除非替换后代码不被执行;- 返回值应该使用明确的类型,避免使用int类型表示布尔值; - 使用语言提供的错误处理机制,不要使用全局变量进行错误处理;6. 引入外部文件规范:- 头文件的引用应该尽可能放在源文件的开头;- 头文件的引用应该使用""而不是<>,以示区分;- 头文件的引用应该避免循环引用;- 不要在头文件中定义变量;以上是华为C语言编程规范的部分内容,为了提高代码的可读性和可维护性,开发者应该严格遵守这些规范。
这些规范不仅适用于华为的开发项目,也适用于其他的C语言开发项目。