单片机程序设计规范与技巧
- 格式:doc
- 大小:81.00 KB
- 文档页数:13
单片机程序设计规范与技巧单片机程序设计规范与技巧在单片机程序设计中,遵循一定的规范和技巧是非常重要的。
本文将介绍一些常用的单片机程序设计规范和技巧,帮助开发者编写更高质量的单片机程序。
1. 命名规范在单片机程序设计中,良好的命名规范可以增加程序的可读性和可维护性。
以下是一些常用的命名规范:- 变量和函数名应该具有描述性,能够清晰表达其用途和含义。
- 使用驼峰命名法或下划线命名法来命名变量和函数。
例如:变量名为`sensorValue`或`sensor_value`。
- 避免使用单个字母作为变量名,除非在循环中临时使用。
- 定义常量时,使用全大写和下划线命名法。
例如:`MAX_VALUE`。
- 对于函数和变量名,尽量使用英文单词,避免使用拼音或缩写。
2. 注释规范良好的注释可以提高程序的可读性和可理解性,尤其是在协作开发和日后维护时。
以下是一些注释规范的建议:- 在每个函数的开头,用简要的注释描述函数的作用和功能。
- 对于复杂的算法或逻辑,使用注释解释其工作原理和关键步骤。
- 在关键的代码段前后使用注释,解释该代码段的用途和实现思路。
- 避免注释和代码不一致的情况,及时更新注释以保持准确性。
3. 代码风格一致的代码风格可以提高代码的可读性和可维护性。
以下是一些常用的代码风格规范:- 使用适当的缩进,通常为四个空格或一个制表符。
- 用大括号`{}`明确代码块的范围,即使代码块只有一行。
- 避免使用过长的函数和过多嵌套的条件语句,尽量保持代码简洁。
- 在操作符两侧和逗号后面添加空格,可以提高代码的可读性。
- 每行代码不要过长,通常不超过80个字符,方便阅读和维护。
4. 输入输出处理在单片机程序设计中,输入输出的处理常常是一个重要的部分。
以下是一些处理输入输出的技巧:- 对于外部输入,如传感器数据或用户输入,应进行有效性检查和错误处理。
- 避免在循环中进行较耗时的输出操作,以免影响程序的实时性。
- 利用缓冲区来缓存输入和输出数据,以提高效率。
单片机程序设计规范与技巧单片机程序设计规范与技巧1. 引言单片机程序设计是嵌入式系统开发中非常重要的一环。
为了提高代码的可读性、可维护性和可扩展性,我们需要遵循一些规范和技巧。
本文将介绍一些常用的单片机程序设计规范和技巧,帮助开发者编写高质量的单片机程序。
2. 命名规范良好的命名规范可以使代码更易于理解和维护。
以下是一些常用的命名规范:- 变量和函数命名应有描述性:命名应反映出其用途和含义,避免使用缩写或无意义的命名。
- 使用驼峰命名法:将多个单词连接起来,首字母小写,后面的单词首字母大写。
- 避免使用保留字和关键字:命名不应与单片机编程语言中的保留字和关键字相同。
- 常量使用全大写的下划线分隔:常量的命名应使用全大写字母,并用下划线分隔。
例如:```cint sensorValue; // 变量命名采用驼峰命名法void processSensorData(); // 函数命名采用驼峰命名法const int MAX_VALUE = 100; // 常量命名全大写并用下划线分隔```3. 注释规范良好的注释可以提供代码的理解和维护。
以下是一些常用的注释规范:- 函数头部注释:在函数定义之前写明函数的作用、输入输出参数以及返回值说明。
- 重要代码行注释:在关键代码行附近添加注释,解释代码的用途和逻辑。
- 注释代码的目的:当有代码被注释掉时,一定要注明原因,以免造成困惑。
例如:```c/brief 处理传感器数据param nonereturn none/void processSensorData() {// 读取传感器数据int sensorValue = readSensor();// 处理传感器数据//}```4. 函数规范函数是单片机程序的核心组成部分,使用规范的函数可以提高代码的可读性和可维护性。
以下是一些常用的函数规范:- 函数功能单一:每个函数应该只负责一项具体的功能,避免函数功能过于复杂。
单片机程序设计规范与技巧单片机程序设计规范与技巧1. 引言2. 命名规范在单片机程序设计中,命名规范对于代码的可读性和可维护性非常重要。
以下是一些命名规范的建议:变量和函数名应使用有意义的英文单词或缩写,尽量避免使用无意义的字母和数字组合。
变量和函数名应使用小驼峰命名法,即第一个单词的首字母小写,后面的每个单词的首字母大写。
宏定义的命名应全部使用大写字母,并使用下划线分隔单词。
文件名应使用有意义的英文单词或缩写,并以`.c`或`.h`作为后缀。
3. 注释规范良好的注释可以提高代码的可读性和可维护性。
以下是一些注释规范的建议:在函数和模块的开头,应添加对功能和用法的简要注释。
在各个关键代码段之后,应添加注释说明其用途和实现方法。
注释应使用简洁明了的语言,避免冗余和复杂的描述。
注释应和代码对齐,方便阅读和理解。
4. 代码结构规范良好的代码结构有助于提高代码的可读性和可维护性。
以下是一些代码结构规范的建议:将代码分成多个函数或模块,每个函数或模块只负责一个特定的功能。
函数或模块的名称应准确地描述其功能,并尽量简洁明了。
将相关的变量和函数放在一起,方便查找和修改。
合理使用缩进和空行,增加代码的可读性。
5. 错误处理规范在单片机程序设计中,错误处理是十分重要的。
以下是一些错误处理规范的建议:对于可能发生错误的操作,应进行错误检测和处理。
使用返回值或错误码来表示操作是否成功,避免直接使用错误信息字符串。
在发生错误时,应及时给出错误提示或进行适当的补救措施。
在发生严重错误时,可以考虑进行重启或其他紧急处理。
6. 调试技巧调试是单片机程序开发过程中必不可少的一环。
以下是一些调试技巧的建议:使用调试工具和调试器进行代码调试,并利用断点和单步执行功能进行逐步跟踪。
在代码中插入调试输出语句,打印中间结果和调试信息。
使用LED等外部设备来进行调试,观察和验证程序的运行状态。
7.以上是关于单片机程序设计规范与技巧的内容,希望对您有所启发和帮助。
单片机程序设计规范与技巧目录:________第一章引言第二章环境搭建1. 开发工具选择2. 编程语言选择3. 编译器设置第三章程序结构1. 主函数2. 中断服务函数3. 子函数第四章变量与常量1. 命名规范2. 变量类型选择3. 常量的使用第五章输入与输出1. 输入设备的连接与使用2. 输出设备的连接与使用3. IO口的配置与读写第六章时钟与定时器1. 系统时钟的设置2. 定时器的使用3. 延时函数的编写第七章通信接口1. 串口通信2. SPI通信3. I2C通信第八章中断处理1. 中断类型与优先级2. 中断使能与禁止3. 中断嵌套与嵌套层次第九章程序调试与优化1. 调试工具的选择与使用2. 代码优化技巧3. 常见错误与调试方法第十章项目管理10.1 项目文件组织与管理10.2 版本控制10.3 文档撰写与维护第一章引言单片机程序设计是嵌入式系统开发中的核心技术之一。
本文档旨在为单片机程序设计人员提供一套规范与技巧,以确保程序的可靠性和可维护性。
通过遵循本文档的指导,开发人员能够更高效地进行单片机程序的设计、调试和优化。
第二章环境搭建1. 开发工具选择选择适合自己的集成开发环境(IDE),如Keil、IAR等,并确保具备调试功能。
2. 编程语言选择选择合适的编程语言,如C语言等,利于开发和维护。
3. 编译器设置正确配置编译器参数和选项,保证的目标代码的质量。
第三章程序结构1. 主函数主函数是程序的入口,应当写清楚注释,调用其他函数以完成具体任务。
2. 中断服务函数根据需要编写中断服务函数,保证中断的及时响应和正确处理。
3. 子函数根据任务的复杂程度,将任务划分为多个子函数,并进行合理的命名,以增加代码的可读性和可维护性。
第四章变量与常量1. 命名规范变量命名应具有一定的可读性,采用有意义的命名规范,避免使用拼音、缩写等不易理解的名称。
2. 变量类型选择根据变量的用途和功能选择合适的变量类型,以节省资源并提高程序效率。
单片机程序设计规范与技巧单片机程序设计规范与技巧本文档旨在提供单片机程序设计的规范和技巧,帮助开发人员编写高质量的单片机程序。
以下为详细的内容。
一、程序设计规范1.1 命名规范1.1.1 使用有意义的变量、函数和文件名1.1.2 采用驼峰命名法或下划线命名法1.1.3 避免使用保留关键字作为命名1.1.4 使用全大写字母表示常量1.1.5 使用规定的前缀表示不同类型的变量或函数1.2 注释规范1.2.1 在代码中添加适当的注释解释功能或算法1.2.2 使用清晰明了的语言和常见的注释格式1.2.3 避免添加与代码功能不符的注释1.3 代码编写规范1.3.1 模块化设计,实现功能相对独立的代码模块1.3.2 使用合适的数据结构和算法1.3.3 避免使用全局变量,使用局部变量和函数传参来保持代码的可读性和可维护性1.3.4 严格遵守禁止使用硬编码的原则,使用宏定义或常量来定义硬编码的值1.3.5 通过代码缩进和空格来提高代码的可读性二、技巧2.1 变量的初始化2.1.1 所有变量都应该被初始化,避免使用随机值2.1.2 在适当的时机进行变量的重置,保证代码的可靠性2.2 代码复用2.2.1 提取公共代码作为函数或宏定义,避免重复编写代码2.2.2 将通用的功能模块封装成库,方便多个项目的复用2.3 资源优化2.3.1 合理使用闲置资源,如定时器、中断等2.3.2 避免使用过多的全局变量和动态内存分配,减小内存占用2.3.3 优化算法和数据结构,提高代码的执行效率和响应速度3、附件本文档涉及的附件包括示例代码、库文件和文档。
请参考附件中的相关内容。
4、法律名词及注释4.1 法律名词:本文档中涉及的法律名词包括但不限于版权、专利和商标等。
这些名词在不同国家和地区可能有不同的定义和适用法规。
5、全文结束。
单片机的编程技巧简介:单片机是一种微型计算机系统,具有集中控制和处理能力。
在现代电子设备中,单片机的应用非常广泛。
本文将讨论一些单片机编程的技巧,以帮助读者更好地应对单片机编程的挑战。
一、充分了解单片机的指令集在单片机编程中,了解单片机的指令集是非常重要的。
每个单片机都有自己的指令集,这些指令用于执行各种操作,比如读取、写入、计算等。
通过充分了解指令集,开发人员可以更好地利用单片机的功能,提高程序的效率。
二、合理设计程序结构在编写单片机程序时,合理的程序结构设计可以提高程序的可读性和维护性。
可以将程序分为多个模块,每个模块实现一个特定的功能。
同时,通过良好的命名规范和注释,可以帮助其他开发人员更好地理解和调试程序。
三、合理利用中断中断是单片机编程中的重要机制,可以响应外部事件并及时处理。
在设计程序时,合理利用中断可以提高程序的响应能力和实时性。
比如,可以使用定时中断来进行周期性任务的处理,或者使用外部中断来响应外部设备的输入。
四、合理选择数据类型和变量在编写单片机程序时,合理选择数据类型和变量可以提高程序的效率和资源利用率。
对于需要高精度计算的任务,可以选择浮点型数据类型;对于需要节约内存的任务,可以选择整型或枚举类型。
五、注意优化程序代码在单片机编程中,代码的优化可以提高程序的执行效率和响应速度。
可以通过减少不必要的计算、精简程序代码、消除冗余操作等方式进行优化。
同时,合理选择编译器和编译选项也可以提高代码的优化效果。
六、合理利用调试工具调试是单片机编程中不可或缺的一环。
合理利用调试工具可以帮助开发人员快速定位和修复程序中的错误。
可以使用仿真器、调试器等工具进行单步调试,以观察程序的执行情况并进行错误排查。
七、不断提升学习和实践单片机编程是一个不断学习和实践的过程。
通过不断学习单片机的相关知识和技术,积极参与实际项目的开发,可以不断提升自己的单片机编程技巧。
同时,了解单片机市场的最新动态和发展趋势,也有助于指导自己的学习和实践。
单片机程序设计规范与技巧
单片机程序设计规范与技巧
一、简介
本章节介绍单片机程序设计规范与技巧的目的和意义。
二、开发环境配置
本章节详细介绍单片机程序设计所需的开发环境配置步骤,包括IDE的安装、编译器的选择和设置等内容。
三、程序框架设计
本章节详细介绍单片机程序的框架设计,包括主函数的设计、中断处理函数的设计和任务处理函数的设计等。
四、硬件初始化
本章节详细介绍单片机程序的硬件初始化,包括IO口初始化、定时器初始化和串口初始化等。
五、程序编写规范
本章节详细介绍单片机程序的编写规范,包括命名规范、
注释规范和代码风格规范等。
六、程序调试技巧
本章节详细介绍单片机程序的调试技巧,包括断点调试、变量监视和时序分析等。
七、程序优化技巧
本章节详细介绍单片机程序的优化技巧,包括代码优化、数据结构优化和算法优化等。
八、常见问题及解决方案
本章节了单片机程序设计中常见的问题及其解决方案,供参考和借鉴。
附件:
附件1:示例程序代码
附件2:开发环境配置文件
法律名词及注释:
1:版权:指作者享有对其作品进行复制、发行、展览、表演、播送、制作衍生作品等行为的专有权利。
2:许可证:指授权他人使用作品的权利,在单片机程序设计中通常指开源软件授权许可证。
单片机程序设计规范与技巧单片机程序设计规范与技巧引言单片机程序设计是嵌入式系统开发的关键环节之一。
为了确保程序的稳定性、可读性和可维护性,制定一套规范并掌握一些设计技巧是至关重要的。
本文将介绍一些单片机程序设计的规范和技巧,以帮助开发者更好地编写高质量的单片机程序。
单片机程序设计规范1. 命名规范选择有意义的变量和函数名,使用驼峰命名法。
避免使用单个字母或数字作为命名。
使用名词来表示变量,使用动词来表示函数。
避免使用与关键字、库函数或已存在的符号重名的命名。
2. 文件结构在程序的开头使用注释清晰地说明文件名称、作者、创建日期等信息。
将程序分成多个源文件,每个文件仅包含相关功能代码,方便维护和复用。
使用头文件来定义常量、宏、函数原型和结构体等,保持代码的模块化和可读性。
3. 注释规范在关键代码部分添加注释,解释其功能和原理,帮助他人理解代码。
合理使用空行和缩进,增加代码的可读性。
避免使用无意义的注释,注释应该解释代码逻辑、算法或特殊处理的原因。
4. 常量和宏定义使用常量和宏定义来提高代码的可维护性和可读性。
将常用的数值、延时时间和硬件相关的配置等定义为常量或宏。
使用枚举类型定义一组相关的常量,提高代码的可读性和可维护性。
5. 函数设计函数应该尽量做到单一职责,每个函数完成一个明确的功能。
函数应该具有可重入性,避免使用全局变量和静态变量。
函数的输入和输出应该规范化,使用参数传递和返回值等方式进行数据交互。
使用适当的函数命名来表达函数的功能和用途。
6. 错误处理增加错误处理和异常处理的机制,提高程序的鲁棒性。
使用错误码或异常类来标识和处理不同的错误情况。
应该避免出现无法处理的异常或错误,例如内存溢出等情况。
7. 测试与调试编写测试代码来验证程序的正确性和稳定性。
在程序中添加调试信息和日志,有助于定位和解决问题。
使用调试工具和仿真器来调试程序,提高开发效率。
单片机程序设计技巧1. 优化代码避免使用浮点数运算,尽量使用整数运算来提高执行效率。
单片机程序设计规范与技巧单片机程序设计规范与技巧引言设计规范1. 代码注释良好的代码注释可以帮助他人理解你的代码逻辑,也方便日后的维护和修改。
每个函数、变量和模块都应该有适当的注释说明其用途和功能。
2. 变量命名变量名应该具有描述性,并且能够清楚地表达其含义。
尽量避免使用无意义的单个字母或数字作为变量名,以提高代码的可读性。
3. 函数设计每个函数应该具有明确的功能和用途,并且不要过于庞大。
一个函数应该只完成一个具体的任务,尽量遵循单一职责原则。
4. 错误处理在程序中应该加入足够的错误处理机制,以便及时发现和处理错误。
合理利用返回值、错误码、断言等方式来处理异常情况,并及时报告错误。
5. 代码复用在设计中尽量避免重复的代码,尽量将通用的部分提取出来作为函数或模块,并进行适当的封装。
这有助于提高代码的可维护性和重用性。
技巧1. 内存管理合理使用单片机的内存资源,避免内存溢出和浪费。
可以通过合理的变量分配、动态内存管理等方式提高内存的利用效率。
2. 中断处理充分利用单片机的中断机制来处理实时响应的任务。
在中断服务函数中,尽量避免耗时的操作,减少中断响应时间。
3. 电源管理合理使用单片机的低功耗模式和休眠模式,以降低功耗。
在设计中考虑电源的稳定性和电流的消耗,尽量减少不必要的功耗。
4. 时钟和定时器合理使用单片机的内部时钟和定时器,以满足实时性要求。
在设计中需要考虑时钟精度和定时器的分辨率,以确保系统的稳定性和准确性。
5. 调试工具合理利用单片机的调试工具,如仿真器和调试器,来辅助调试和测试。
通过调试工具可以有效地定位和解决程序中的问题。
单片机程序设计编程规范单片机程序设计编程规范1.文件结构与命名规范1.1 源码文件- 所有源码文件统一使用英文小写字母命名。
- 文件名应简洁明了,能够清晰表达文件的功能。
- 文件名中可以使用下划线 (_) 连接多个单词。
1.2 头文件- 头文件名与源码文件名相同,但使用大写字母命名。
- 头文件应包含必要的宏定义、类型定义、函数声明等。
1.3 项目结构- 源码文件应按功能模块进行组织和管理,每个模块应放在独立的文件夹中。
- 在项目的根目录下添加一个README文件,对项目进行简要说明。
2.编码规范2.1 缩进与空格- 使用4个空格进行缩进,不使用Tab字符。
- 在操作符前后添加空格,增加可读性。
2.2 函数命名- 函数名使用小写字母命名,单词之间使用下划线 (_) 连接。
- 函数名应能够清晰表达函数的功能。
2.3 变量命名- 变量名使用小写字母命名,单词之间使用下划线 (_) 连接。
- 变量名应简洁明了,能够清晰表达变量的用途和含义。
- 全局变量命名应以g_开头。
2.4 常量命名- 常量名使用全大写字母命名,单词之间使用下划线(_) 连接。
2.5 注释规范- 使用注释来解释代码的意图、功能和实现细节。
- 在关键代码处添加注释,并保持注释与代码的同步更新。
- 注释应写在被注释代码的上方,并使用// 或 / /注释符号。
3.函数设计3.1 函数长度- 函数应尽量保持简短,避免超过一页纸的长度。
- 如果函数过长,应考虑将其拆分为多个较小的函数。
3.2 函数参数- 函数参数应尽量少,并且要考虑参数的顺序和类型。
- 不要在函数参数中使用全局变量,尽量使用局部变量。
3.3 函数返回值- 函数的返回值应具有明确的含义,并清晰地传达函数的执行结果。
4.异常处理与错误消息4.1 异常处理- 对可能发生异常的代码块进行适当的异常处理。
- 使用try-catch块捕获异常,并进行相应的处理或记录。
4.2 错误消息- 提供清晰、准确的错误消息,以便于调试和修复问题。
单片机软件设计规范1.学习软件设计规范的目的学习软件设计规范的目的就是编写高质量的软件,降低编码阶段的错误率。
设计一个高质量的软件有以下几点要求:1)软件设计模块化,具有好的可重用性和可移植性。
2)程序代码干净整洁,具有好的可维护性。
3)不使用晦涩的语句,简洁易懂,具有好的易懂性。
4)代码设计简明扼要,提高程序的运行效率以及程序所占用的内存空间。
5)使用充足的程序说明,程序具有好的可读性。
综上所述:可重用性、可移植性、可维护性、易懂性、高效率性以及可读性是衡量一个软件质量基本要求。
2.排版规范1.程序块采用缩进风格编写,缩进为4个空格位,通常采用TAB键来进行缩进,也可直接敲入4个空格位,但排版不能混合使用空格和TAB键。
2.函数体的开始,类的定义,结构的定义,if、for、do、while、switch及case 语句中的程序都应采用缩进方式,‘{’符号与‘}’独占一行并且位于同一列。
示例:如下例子不符合规范if(……){…… }应如下书写if(……){……}3.相对独立的程序块之间、变量说明之后必须加空行。
示例:如下例子不符合规范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;4.一行最多写一条语句。
示例:如下例子不符合规范i++ ; j++ ;应如下书写i++;j++;5.不同类型的操作符混合使用时,使用括号给出优先级。
示例:如下例子不符合规范if( i!=1 || j!=2 && k!=3 )应如下书写if( (i!=1) || ( (j!=2) && (k!=3) ) )6.较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
示例(书写正确):perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN+ STAT_SIZE_PER_FRAM * sizeof( _UL );7.在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如->),后不应加空格。
说明:采用这种松散方式编写代码的目的是使代码更加清晰。
示例:(1)逗号、分号只在后面加空格。
int a, b, c;(2)比较操作符, 赋值操作符"="、 "+=",算术操作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符的前后加空格。
if (current_time >= MAX_TIME_VALUE)a =b + c;a *= 2;a =b ^ 2;(3)"!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符前后不加空格。
*p = 'a'; // 内容操作"*"与内容之间flag = !isEmpty; // 非操作"!"与内容之间p = &mem; // 地址操作"&" 与内容之间i++; // "++","--"与内容之间(4)"->"、"."前后不加空格。
p->id = pid; // "->"指针前后不加空格(5) if、for、while、switch等与后面的括号间应加空格,使if等关键字更为突出、明显。
if (a >= b && c > d)3.注释规范1.一般情况下,源程序有效注释量必须在20%以上说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。
2.说明性文件(如头文件.h文件、.inc文件)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、头文件的注释中还应有函数功能简要说明。
示例:下面为一头文件的头部注释的模板/*************************************************Copyright (C), 2005, HUSTFile name: test.h// 文件名Author: Version: Date: // 作者、版本及完成日期Description: // 用于详细说明此程序文件完成的主要功能,与其他模块// 或函数的接口,输出值、取值范围、含义及参数间的控// 制、顺序、独立或依赖等关系Others: // 其它内容的说明Function List: // 主要函数列表,每条记录应包括函数名及功能简要说明*************************************************/3.源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能等。
示例:下面为一源文件的段头注释的模板/************************************************************ Copyright (C), 2005, HUSTFileName: test.cAuthor: Version : Date:Description: // 模块描述Version: // 版本信息Function List: // 主要函数及其功能1. -------***********************************************************/ 4.函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值等。
示例:下面为一函数头部注释的模板/*************************************************Function: // 函数名称Description: // 函数功能、性能等的描述Input: // 输入参数说明,包括每个参数的作// 用、取值说明及参数间关系。
Output: // 对输出参数的说明。
Return: // 函数返回值的说明Others: // 其它说明*************************************************/5.注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。
示例:如下例子不符合规范。
例1:/* get replicate sub system index and net indicator */repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;例2:repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;/* get replicate sub system index and net indicator */应如下书写/* get replicate sub system index and net indicator */repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;6.注释与所描述内容进行同样的缩排。
这样可使程序排版整齐,并方便注释的阅读与理解。
示例:如下例子,排版不整齐,阅读稍感不方便。
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}7.将注释与其上面的代码用空行隔开。
示例:如下例子,显得代码过于紧凑。
/* code one comments */program code one/* code two comments */program code two应如下书写/* code one comments */program code one/* code two comments */program code two4.高效率代码设计规范代码效率分为全局效率、局部效率、时间效率及空间效率。
全局效率是站在整个系统的角度上的系统效率;局部效率是站在模块或函数角度上的效率;时间效率是程序处理输入任务所需的时间长短;空间效率是程序所需内存空间,如机器代码空间大小、数据空间大小、栈空间大小等。
1.仔细分析有关算法,并进行优化。
(1)用移位来代替2的次幂的乘除法示例:(A/D采样时的均值滤波:每次采样16个点,求16个点的均值)以下代码不规范:sum /= 16 ;应书写为:sum >>= 4 ;(2)用减法代替任意的除法示例:(在LED/LCD显示中,常需要将一个无符号整型数的个、十、百位取出来)以下代码不规范:temprature = 253 ;led1 = temperature / 100 ;temperature %= 100 ;led2 = temperature / 10 ;temperature %= 10 ;led3 = temperature ;应书写为:temprature = 253 ;led1=led2=led3=0;while(temperature<100){led1++;temperaturn -= 100 ;}………………………………(3)用定点数代替浮点数的运算说明:用定点数代替浮点数的基本原则就是单元变换。