"嵌入式C编码规范:人本编写,提高代码质量"
83 浏览量
更新于2024-01-21
2
收藏 211KB PDF 举报
to do),精简版将只包括规范要求(how to do)。
1. 命名规范:变量、函数、宏、常量命名使用有意义的英文单词或缩写,遵循驼峰命名法或下划线命名法,要符合标识符命名规则,不得使用拼音或无意义的命名,不得使用系统关键字或保留字。
2. 注释规范:代码必须配以必要的注释,注释应该简洁明了、不含有冗长代码、能够让读者快速了解代码意图和逻辑,注释内容要合理,清晰,规范,易理解。
3. 函数规范:函数应尽可能短小、功能单一、易于维护、易于测试,函数命名需见名知意、使用明确的参数名称,使用标准的函数头部注释,严格遵守参数传递规范。
4. 数据类型规范:使用数据类型要符合实际需求,变量声明应尽可能靠近其首次使用的地方,严格规范使用指针和引用,避免内存泄漏和野指针问题。
5. 错误处理规范:每个函数都要注意错误处理,返回值表示函数执行结果或错误码,避免使用错误码嵌套,统一处理错误码。
6. 格式化规范:代码要有良好的缩进、空格、标点、换行等格式,保证代码的易读性和美观性,严格遵循统一的代码格式规范。
7. 宏定义规范:宏定义的命名规范和使用规范,宏定义要简洁明了、不含有冗长代码,宏定义的嵌套使用要慎重,避免出现错误。
8. 文件和目录规范:文件和目录命名规范,源文件和头文件结构规范,文件内容组织规范,遵循开放闭合原则。
9. 性能优化规范:注意代码的高效性,规避不必要的资源浪费,避免过度优化和过度工程。
10. 移植性规范:避免使用非标准函数、宏,确保代码具有较好的可移植性,对目标平台的特性和限制要做到了解透彻。
0.3规范内容:
1.命名规范
1.1变量命名
变量应采用有意义的英文单词或缩写命名,使用驼峰命名法或下划线命名法,不得使用拼音或无意义的命名。
1.2函数命名
函数命名也需见名知意,使用明确的参数名称,遵循驼峰命名法或下划线命名法。
1.3常量命名
常量一般使用大写字母加下划线命名,如:MAX_LENGTH。
1.4宏命名
宏定义的命名需简洁明了,不含有冗长代码,宏定义的嵌套使用应慎重,避免出现错误。
2.注释规范
2.1注释内容
注释应该简洁明了,不含有冗长代码,能够让读者快速了解代码意图和逻辑,注释内容要合理,清晰,易理解。
2.2注释位置
注释应该合理、恰到好处,不可过多也不可过少。
3.函数规范
3.1函数长度
函数应尽可能短小,功能单一,易于维护,易于测试。
3.2函数命名
函数命名需见名知意,使用明确的参数名称。
3.3函数注释
使用标准的函数头部注释,清晰描述函数功能、输入参数和返回值。
4.数据类型规范
4.1数据类型使用
使用数据类型要符合实际需求,避免数据类型不当带来的问题。
4.2变量声明
变量声明应尽可能靠近其首次使用的地方。
4.3指针和引用
严格规范使用指针和引用,避免内存泄漏和野指针问题。
5.错误处理规范
5.1错误处理
每个函数都要注意错误处理,返回值表示函数执行结果或错误码。
5.2错误码处理
避免使用错误码嵌套,统一处理错误码。
6.格式化规范
6.1代码格式
代码要有良好的缩进、空格、标点、换行等格式。
6.2代码统一
严格遵循统一的代码格式规范。
7.宏定义规范
7.1宏定义命名
宏定义的命名规范和使用规范。
7.2宏定义内容
宏定义的内容应简洁明了,不含有冗长代码。
8.文件和目录规范
8.1命名规范
文件和目录命名规范。
8.2结构规范
源文件和头文件结构规范。
8.3内容组织
文件内容组织规范。
9.性能优化规范
9.1高效性
注意代码的高效性,规避不必要的资源浪费。
9.2过度优化
避免过度优化和过度工程。
10.移植性规范
10.1可移植性
避免使用非标准函数、宏,确保代码具有较好的可移植性。
10.2目标平台
对目标平台的特性和限制要做到了解透彻。
2019-01-10 上传
2023-12-06 上传
2023-08-02 上传
2024-10-27 上传
2024-10-27 上传
2023-07-16 上传
2024-10-27 上传
weixin_38743602
- 粉丝: 396
- 资源: 2万+
最新资源
- SQL语言艺术-如何高效使用SQL语言
- WPF Data Binding
- Rich Internet Applications with Adobe Flex&Java(Flex在Eclipse上的开发)
- 客户资料客户资料客户资料客户资料
- CMD运行指令.txt
- LR经典全面手册.pdf
- Linux和Unix系统中最常用的网络命令
- JSP应用语法详解大全.txt
- 基于子空间跟踪的盲MMSE多用户检测算法
- 事半功倍 系列 javascript.txt
- AIR应用开发中文指南(BETA2)
- webwork与struts处理上的异同(1) .txt
- vector的详细用法.txt
- 利用SOA集成检索遗留系统材料
- Hibernate HQL.txt
- java的精髓.txt