华为C语言编程规范
- 格式:pdf
- 大小:469.55 KB
- 文档页数:59
華為編程規範與實例1 排版11-1:程序块要采用缩进风格编写,缩进的空格数为4个。
说明:对于由开发工具自动生成的代码可以有不一致。
11-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;11-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));11-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
华为编程规范华为是一家世界知名的信息通信技术(ICT)解决方案供应商,为全球超过170个国家和地区的企业和消费者提供产品和服务。
在华为的软件开发过程中,编程规范起着至关重要的作用。
良好的编程规范有助于提高代码的质量和可维护性,减少错误和调试时间,提高开发效率。
以下是华为编程规范的一些核心要点:1. 命名规范:变量、函数、类等命名应具有清晰的含义,并遵循驼峰命名法。
变量和函数名应尽量简短明了,避免使用无意义的名字。
同时,要避免使用拼音或缩写,提高代码的可读性。
2. 注释规范:良好的注释是代码可读性的重要组成部分。
应在需要解释的地方进行注释,对于复杂的算法和逻辑,要详细解释思路和实现方法。
此外,对于代码片段的用途,也可以加上简短的注释。
注释应使用英文,避免使用拼音或其他不常见的语言。
3. 缩进和空格:合理的缩进和空格可以提高代码的可读性。
在华为的编程规范中,使用四个空格作为一个缩进层级。
在运算符和逗号等地方留有适当的空格,使代码更易于阅读。
4. 函数规范:函数应尽量简短,一个函数应有一个明确的目的。
函数命名要具有清晰的语义,能够准确描述函数的功能。
参数应尽量避免过多,遵循最小化设计原则。
5. 异常处理:在代码中应该考虑到可能出现的异常情况,并进行相应的处理。
捕获异常后,应该写明异常类型,并书写明确的处理逻辑。
6. 安全性考虑:在编写代码时,应始终考虑安全性。
避免使用已知存在安全漏洞的函数和方法,对于输入的数据进行合理的校验和过滤,防止代码被恶意攻击者利用。
7. 代码格式化:代码格式化可以提高代码的可读性,使代码更易于维护。
在华为的编程规范中,要求使用一致的缩进和空格,合理分行和对齐,并采用一致的命名风格。
8. 可移植性:考虑到不同平台和操作系统的差异,编写代码时应注重可移植性。
避免使用与操作系统和平台相关的特性和函数,尽量使用标准库和接口。
9. 性能优化:在编写代码时,应注重性能优化。
避免不必要的计算和内存开销,合理选择数据结构和算法。
华为代码规范=====[ 排版 ]=====11-1:程序块要采用缩进风格编写,缩进的空格数为4个说明:对于由开发工具自动生成的代码可以有不一致。
11-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;11-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));11-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}11-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 );11-6:不允许把多个短语句写在一行中,即一行只写一条语句示例:如下例子不符合规范。
目录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++编码规范,认为比google的好一点–【人人分享目录1、版面... 4 2、命名... 5 3、注释... 6 4、源代码结构... 11 附录A:常见单词缩写表 (12)1、版面【规则1-1】程序块要采用缩进风格编写,缩进的空格数为4个。
【规则1-2】对齐与缩进只使用空格键,不使用TAB键。
说明:以免用不同的编辑器阅读程序时,因TAB键所设置的空格数目不同而造成程序布局不整齐,不要使用会自动将8个空格变为一个TAB键的开发工具编辑代码。
(可开发工具软件自动将TAB键转换为4个空格)【规则1-3】函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。
【规则1-4】相对独立的程序块之间、变量说明之后必须加空行(一个空行即可)。
【规则1-5】一行程序以小于80字符为宜,不要写得过长。
【规则1-6】较长的语句(>80字符)要尽量分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
【规则1-7】循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
【规则1-8】若函数或过程中的参数较长,则要进行适当的划分。
【规则1-9】不允许把多个短语句写在一行中,即一行只写一条语句。
【规则1-10】if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。
【规则1-11】程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。
在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用缩进方式。
〔一〕=====[排版] ]=======......................................................................... 〔二〕======[注释]=======......................................................................... 〔三〕=====[标识符命名]======= .................................................................. 〔四〕=====[可读性]====== .......................................................................... 〔五〕=====[变量、结构]=====....................................................................... 〔六〕=====[函数、过程]=====....................................................................... 〔七〕=====[可测性]=====............................................................................. 〔八〕=====[程序效率]=====.......................................................................... 〔九〕=====[质量保证]=====.......................................................................... 〔十〕=====[代码编辑、编译、审查]=====......................................................... 〔十一〕=====[代码测试、维护]=====............................................................... 〔十二〕=====[宏]===== ...............................................................................〔一〕=====[排版]¹1-1:程序块要采用缩进风格编写,缩进的空格数为4个说明:对于由开发工具自动生成的代码可以有不一致。
百度文库- 让每个人平等地提升自我目录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 排版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语言编程规范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语言开发项目。
華為編程規範與實例1 排版11-1:程序块要采用缩进风格编写,缩进的空格数为4个。
说明:对于由开发工具自动生成的代码可以有不一致。
11-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;11-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));11-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。