单片机软件编程规范

合集下载

C51编程规范--很好的规范

C51编程规范--很好的规范

单片机C51编程规范1单片机C51编程规范-前言为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范。

2 单片机C51编程规范-范围本标准规定了程序设计人员进行程序设计时必须遵循的规范。

本规范主要针对C51编程语言和kei§编译器而言,包括排版、注释、命名、变量使用、代码可测性、程序效率、质量保证等内容。

3 单片机C51编程规范-总则格式清晰注释简明扼要命名规范易懂函数模块化程序易读易维护功能准确实现代码空间效率和时间效率高适度的可扩展性4 单片机C51编程规范-数据类型定义编程时统一采用下述新类型名的方式定义数据类型。

建立一个datatype.h文件,在该文件中进行如下定义:typedef bit BOO§; // 位变量//typedef unsigned char INT8U; // 无符号8位整型变量//typedef signed char INT8S; // 有符号8位整型变量//typedef unsigned int INT16U; // 无符号16位整型变量//typedef signed int INT16S; // 有符号16位整型变量//typedef unsigned §ong INT32U; // 无符号32位整型变量//typedef signed §ong INT32S; // 有符号32位整型变量//typedef f§oat FP32; // 单精度浮点数(32位长度) //typedef doub§e FP64; // 双精度浮点数(64位长度) //5 单片机C51编程规范-标识符命名5.1 命名基本原则§命名要清晰明了,有明确含义,使用完整单词或约定俗成的缩写。

通常,较短的单词可通过去掉元音字母形成缩写;较长的单词可取单词的头几个字母形成缩写。

即"见名知意"。

K150单片机编程器使用说明

K150单片机编程器使用说明

TJ- K150 USB PIC单片机编程器用户操作手册版本号:Ver_1.0产品简介K150新版本是我们最新推出的一款低价位高性能的PIC编程器。

此编程器在前期K150硬件电路和软件固件基础上做了大量的优化和改进。

其硬件改进主要有板载供电、升压以及USB通讯电路。

软件升级采用最新固件,尽可能支持兼容更多的PIC系列单片机芯片,除此之外汉化了应用程序,使整个编程器系统运行更稳定,体积更小巧,更适合生产、研发、工程现场以及PIC单片机学习使用。

产品主要特点:采用单USB线供电和数据传输,无需外接电源;支持大部分流行PIC芯片的烧写、读出、加密等功能;高速USB通信方式,烧写速度超快,烧写;全自动烧写校验,使数据下载烧录更可靠;全面的信息提示,让用户清楚了解工作状态;配备板载40pin烧写座,能直接烧写、读出和加密8pin-40pin的DIP芯片; 对于8pin-40 pin以外的芯片可通过板载ICSP接口在线下载;软件兼容Windows98和Windows2000/NT,Windows XP,Windows7等操作系统; 烧写软件与K149A/B/C/D版本相同,添加了汉化版和英文原版,方便操作; 编程器采用贴片元件生产工艺,SMT批量生产使产品质量更稳定,更可靠充分考虑PIC系列芯片的更新,编程器上保留主控芯片的DIP封装并配座,方便用户今后升级使用。

USB_Driver驱动安装Windows95、Windows98、WindowsNT4.0、Windows2000、Windowsxp、win7系统驱动安装方法1)电脑系统配置最低要求:安装 USB_Driver驱动程序,必须满足一定的硬件和软件要求,才能确保编译器以及其它程序功能正常使用,具体要求如下:■ Pentium、Pentium-II或兼容处理器的 PC;■ Windows95、Windows98、WindowsNT4.0、 Windows2000、Windowsxp、Win7;■至少 16MRAM;■至少 20MB硬盘。

(完整版)单片机软件编程规范

(完整版)单片机软件编程规范

1 编辑器 (3)2 程序文件的结构 (3)2.1 说明 (3)2.2 编译宏定义 (4)2.3 包含文件 (4)2.4 用户数据类型定义 (4)2.5 管脚定义 (5)2.6 常量 (5)2.7 变量 (5)2.8 正文 (6)2.8.1 正文顺序[推荐] (6)2.8.2 正文内容 (6)2.9 长的常量数组 (6)3 命名 (7)3.1 常量、编译宏命名 (7)3.2 变量命名 (7)3.3 函数命名 (8)4 程序的版式 (9)4.1 缩进:统一使用编辑器的TAB键进行缩进,同时设定其缩进量为系统默认 (9)4.2 空行:相对独立的程序块之间、变量说明之后必须加空行 (10)4.3 代码行 (11)4.3.1 一行代码只做一件事情 (11)4.3.2 if、for、while、do 等语句自占一行 (11)4.3.3 程序块的分界符独占一行 (12)4.3.4 多运算符的代码行,不使用默认优先级 (13)4.3.5 不要使用难懂的技巧性很高的语句 (13)4.4 空格 (14)4.4.1 必要时留空格,使代码更清晰[推荐] (14)4.4.2 二元操作符前后留空格 (14)4.4.3 一元操作符前后不留空格 (14)4.5 长行拆分 (15)4.5.1 较长的语句(>80字符)要分成多行书写 (15)4.5.2 循环、判断等语句要在低优先级操作符处划分新行 (16)4.5.3 函数或过程中的参数较长,则要进行适当的划分 (16)5 全局变量定义时初始化 (16)6 注释 (17)6.1 必须加注释的位置[推荐] (17)6.2 注释应适量且准确[推荐] (17)6.3 函数接口的注释格式 (17)6.4 变量的注释格式[推荐] (18)6.5 注释与所描述内容进行同样的缩排 (19)6.6 将注释与其上面的代码用空行隔开 (20)6.7 程序块结束行加注释[推荐] (20)7 EEPROM数据保护 (21)8 程序失效复位处理[推荐] (21)9 检查 (21)9.1 数组下标检查 (21)9.2 指针检查 (22)9.3 易混淆操作符检查 (22)9.4 右值变量检查 (22)9.5 差1错误检查 (22)9.6 变量溢出检查 (23)9.7 类型转换检查 (23)1编辑器程序统一使用VC的编辑器。

单片机程序设计编程规范

单片机程序设计编程规范

单片机程序设计编程规范1. 概述本文将介绍单片机程序设计编程过程中应遵循的一些规范。

这些规范旨在提高程序的可读性、可维护性和可重用性,帮助开发人员编写出高质量的单片机程序。

2. 代码布局2.1 源文件结构每个源文件应包含程序的一个完整模块。

源文件以 `.c` 扩展名结尾。

源文件应包含适当的注释,以说明文件的目的和模块。

2.2 函数布局每个函数应尽可能短小,只完成一项具体的功能。

函数应使用有意义的名称,具有描述性。

函数应尽量避免超过 30 行的代码,如果超过应考虑是否需要进行函数分割。

3. 变量命名规范3.1 命名风格变量名应使用小写字母和下划线的组合,如 `my_variable`。

常量应使用全大写字母和下划线的组合,如 `MY_CONSTANT`。

3.2 变量名长度变量名应该具有描述性,尽量避免使用过于简单或过于复杂的变量名。

变量名长度应控制在 20 个字符以内,以保证可读性。

4. 注释规范4.1 文件注释每个源文件应包含文件注释,用于说明文件的目的和模块。

4.2 函数注释每个函数应包含函数注释,用于说明函数的功能、参数和返回值。

4.3 行内注释行内注释应用于解释代码的特定部分,帮助阅读者理解代码的意图。

5. 常量定义规范常量定义应尽量避免使用魔术数,应该使用有意义的常量名来代替。

6. 编码风格使用正确的缩进和对齐方式,以提高代码的可读性。

使用适当的空格来增强代码的可读性,但避免过多的空格导致代码冗长。

使用适当的命名风格和约定,以提高代码的可读性。

7. 错误处理每个函数应该有清晰的错误处理机制,包括返回值、错误码和异常处理等。

错误消息应清晰、明确,并有助于定位错误。

8. 代码复用尽量避免重复的代码,使用函数和模块的方式来实现代码复用。

开发人员应鼓励制定和使用通用的接口、库和模块,以提高代码复用性。

9. 版本管理定期对代码进行版本管理,并使用版本控制工具来管理代码的修改和更新。

10.本文介绍了单片机程序设计编程规范的一些基本原则。

C语言编程规范

C语言编程规范

C语言编程规范1. 基本要求1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。

1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。

1.3 尽量使用标准库函数和公共函数。

1.4 不要随意定义全局变量,尽量使用局部变量。

1.5 使用括号以避免二义性。

2.可读性要求2.1 可读性第一,效率第二。

2.2 保持注释与代码完全一致。

2.3 每个源程序文件,都有文件头说明,说明规格见规范。

2.4 每个函数,都有函数头说明,说明规格见规范。

2.5 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。

2.7 常量定义(DEFINE)有相应说明。

2.8 处理过程的每个阶段都有相关注释说明。

2.9 在典型算法前都有注释。

2.10 利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位,定义Tab为 6个字节。

2.11 循环、分支层次不要超过五层。

2.12 注释可以与语句在同一行,也可以在上行。

2.13 空行和空白字符也是一种特殊注释。

2.14 一目了然的语句不加注释。

2.15 注释的作用范围可以为:定义、引用、条件分支以及一段代码。

2.16 注释行数(不包括程序头和函数头说明部份)应占总行数的 1/5 到 1/3 。

3. 结构化要求3.1 禁止出现两条等价的支路。

3.2 禁止GOTO语句。

3.3 用 IF 语句来强调只执行两组语句中的一组。

禁止 ELSE GOTO 和 ELSE RETURN。

3.4 用 CASE 实现多路分支。

3.5 避免从循环引出多个出口。

3.6 函数只有一个出口。

3.7 不使用条件赋值语句。

3.8 避免不必要的分支。

3.9 不要轻易用条件分支去替换逻辑表达式。

4. 正确性与容错性要求4.1 程序首先是正确,其次是优美4.2 无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。

4.3 改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。

《单片机开发实训》课程标准

《单片机开发实训》课程标准

《单片机开发实训》课程标准一、课程名称单片机开发实训二、内容简介《单片机开发实训》课程是一门实践课程。

本课程通过设定具有综合性的单片机控制项目,让学生根据具体设计要求进行硬件搭建,程序编写。

通过整个项目的初步设计到实现,学生能够综合掌握微型计算机的基本原理,编程方法,微型计算机的接口技术,简单传感器运用和Keil等常用单片机开发工具的使用方法。

三、课程定位本课程是配合《单片机技术》综合实践环节,与先修课程《单片机技术》的核心知识点相衔接,并将细碎的知识点进行综合运用。

目的是让学生巩固所学知识、加强综合能力、提高软、硬件设计调试方面的能力、启发创新思维的效果。

同时,使学生将相关专业课程知识综合起来,融会贯通,形成系统的概念,从而实现理论与实践相结合。

培养和锻炼学生动手操作和技术创新的能力,为将来进行各种智能化产品的设计开发提供技术准备。

四、课程设计指导思想及原则本课程根据应用电子技术专业的培养目标,以职业能力培养为重点,与企业专家合作进行基于工作过程的课程开发与设计,充分体现职业性、实践性和开放性的要求。

以提升学生综合设计能力为目的,训练学生电子线路的组装调试能力和创新能力,通过查阅资料、选定方案、设计电路、调试软件并下载到芯片运行这一系列训练锻炼学生相关技能,同时培养学生良好的职业道德和社会责任感以及良好的行为习惯和个人品质。

本课程需要在理实一体化教室进行教学。

五、建议课时:该课程实训学时为16学时。

六、课程目标:(一)课程能力目标1、总体目标结合应用电子技术专业人才培养方案,根据课程内容和定位,规范课程教学的基本要求,制定本课程目标。

《单片机开发实训》课程,总目标是使学生具有单片机系统设计的知识与技能、具备较高的职业素质,具有调试单片机系统程序和设计最小单片机系统的能力,能解决程序调试和系统设计中遇到的问题,能胜任单片机产品测试工程师、单片机产品技术支持工程师、单片机软件开发师、单片机硬件开发师和单片机系统设计师等岗位工作。

单片机系统开发单片机软件设计

单片机系统开发单片机软件设计
特点
单片机具有高度的集成度和可靠性,体积小,功耗低,价格便宜,易于编程和 控制,广泛应用于智能仪表、工业控制、智能家居等领域。
单片机系统开发的基本流程
需求分析
根据实际需求,确定系统功能和 性能要求。
系统设计
根据需求分析,进行系统整体设 计和模块划分。
硬件设计
根据系统设计,进行单片机选型 和电路板设计。
智能家居
单片机在智能家居领域中也有 广泛应用,如智能门锁、智能 照明等。
其他领域
除了以上领域外,单片机还广 泛应用于汽车电子、医疗电子
、环保监测等领域。
02
单片机软件设计基础
单片机软件设计语言
C语言
C语言是一种通用的编程语言,广泛 应用于单片机系统开发。它具有高效 、灵活和可移植性强的特点,能够实 现复杂的算法和控制逻辑。
详细描述
单片机系统的稳定性问题主要表现在系统运行过程中出 现的不正常现象,如死机、重启、数据丢失等。这些问 题可能是由于硬件设计不合理、软件缺陷、电源波动等 原因引起的。为了解决稳定性问题,可以从以下几个方 面入手:首先,合理设计硬件电路,保证电源的稳定性 和抗干扰能力;其次,优化软件算法,减少死循环和资 源竞争;最后,加强系统监控和报警机制,及时发现和 排除故障。
THANKS
感谢观看
单片机系统的可维护性问题
总结词
可维护性是单片机系统开发中的重要考量,直接关系 到系统的长期稳定性和成本。
详细描述
单片机系统的可维护性问题主要表现在系统升级、故 障排查和日常维护等方面。为了解决可维护性问题, 可以从以下几个方面入手:首先,采用模块化设计方 法,将系统划分为多个独立的功能模块,便于升级和 维护;其次,加强系统的日志记录和错误诊断功能, 快速定位和解决问题;最后,建立完善的文档和代码 注释体系,方便后续开发和维护人员理解和使用。

单片机程序设计编程规范

单片机程序设计编程规范

单片机程序设计编程规范单片机程序设计编程规范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 错误消息- 提供清晰、准确的错误消息,以便于调试和修复问题。

PIC单片机汇编编程规范

PIC单片机汇编编程规范

PIC汇编编程及审核规范(V1.1)一、程序命名规范程序文件名由两部分构成:一部分为产品型号或功能描述,一部分为软件版本号。

产品型号用字母描述,可为英文或中文拼音。

软件版本号为4位,前一位固定为字母”V”,后3位为数字,编写软件版本号应按照从小到大的顺序递增。

开发阶段版本号从001开始;中试之后版本号从100开始。

例如:光电感烟探测器JTY-GD-G3程序 GDG3V001电子差定温探测器JTW-ZCD-G3N程序 GWG3NV101二、程序头格式在每个文件的开始要有一个对该文件总体功能的描述,软件版本,以及作者及编写时间。

采用模版统一格式。

1.在功能描述中,除了对软件实现的功能做简要描述外,还应包括使用的单片机,晶振频率,以及主要I/O口实现的功能。

2.如果程序升级时应增加如下说明。

1)程序升级后的版本号:例如“版本号:Ver105”2)程序升级的修改作者:例如“更改人:×××”3)程序升级的修改日期:例如“更改日期:01 12 17”4)应对程序升级进行简单修改说明。

5)应给出程序增加、更改、删除项说明,每项总处数。

3.程序头如采用如下统一格式:;**************** ;* 文件名* ;**************** ;* 功能描述:;* 软件版本;* 开始编写—完成日期:;* 作者:三、子程序、标号及变量命名规则(推荐)1.子程序及标号命名规则子程序命名应使用相关含义英文。

子程序入口标号应使用子程序名相关含义、常用的英语单词(拼音)或单词(拼音)缩写。

如果一个英语单词表述不清,应使用多个英语单词缩写表示。

程序里边的标号应与执行该分支功能相关含义、常用的英语单词(拼音)或单词(拼音)缩写,如果没有确切含义,应优先选用子程序入口标号前面字母缩写加两位序号。

2.变量命名规则标志寄存器使用相关含义、常用的英语单词英文+ Flag;暂用寄存器使用:暂存对象英文缩写+Temp;计数寄存器使用暂存对象英文缩写+ Numb;其它寄存器:与存放对象相关含义、常用的英语单词(拼音)或单词(拼音)缩写。

PIC单片机在线串行编程(ICSP)和低电压编程(LVP)

PIC单片机在线串行编程(ICSP)和低电压编程(LVP)

PIC单⽚机在线串⾏编程(ICSP)和低电压编程(LVP)PIC单⽚机在线串⾏编程(ICSP)和低电压编程(LVP)前⾔:呵呵,不是论⽂。

刚开始研究PIC,因为想⾃⼰做个开发板。

除了如何让板⼦⼯作外,如何下程序就最关键了。

所以搜罗了些资料,经过⼀番研究,终于懂得了⼀些,拿出来分享⼀下。

有些前辈们在⽹上早就写过的资料,摘了⼀些。

特此感谢啊!副⾔:因为想做PIC16F877和16F887的板⼦,所以只对这两个做了研究,但是貌似其他的型号的PIC单⽚机的在线编程和这个⼀样!正⽂:ICSP,全称In-Circuit Serial Programming,在线串⾏编程。

这⾏英⽂和ICSP这四个字母,⼀般使⽤时都带有TM标记的,也就是说,这是MICROCHIP的商标。

也是MicroChip 独有的吧。

呵呵!ICSP分⾼电压在线串⾏编程(High-voltage In Circuit Serial Programing)和低电压在线串⾏编程(low-voltage ICSP)两种⽅法。

低电压编程和⾼电压编程只是略微有⼀些不同(详见下⽂)。

硬件连接⽅式:MicroChip的ICSP,只需要使⽤芯⽚上的5个脚就可以,其中包括VDD、VSS(GND),,然后就是VPP编程电压和输⼊的数据和时钟两个脚。

⼀般是端⼝B⼝的RB6(PGC,也叫ICSPCLK)和RB7(PGD,也叫ICSPDAT)。

若要对芯⽚的Flash和其他内存等进⾏编程,要使单⽚机⼯作到“编程/校验模式”。

编程器可以通过以下两种⽅法单⽚机⼯作到“编程/校验模式”。

第⼀种,VPP优先,时序图如下:说明:⾸先,保持和为低电平。

在此期间,先将从低电平(VIL)拉⾼到编程电压(VIHH,⼤约13V),然后将拉⾼,为芯⽚供电。

接下来,就可以通过和对芯⽚编程了。

不管芯⽚内的配置字(Configuration Word)如何配置,都可以使单⽚机⼯作到“编程校验模式”。

单片机开发版课程设计

单片机开发版课程设计

单片机开发版课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理和结构组成,掌握其工作流程。

2. 学生能掌握单片机编程的基本语法和编程技巧,具备编写简单程序的能力。

3. 学生能了解单片机开发板的基本功能,熟悉相关外围设备的连接和使用。

技能目标:1. 学生能够运用所学知识,设计并实现具有实际功能的小型单片机系统。

2. 学生能够通过编程,实现单片机对外围设备的控制和数据交互。

3. 学生能够解决在单片机开发过程中遇到的问题,具备一定的调试和优化能力。

情感态度价值观目标:1. 学生培养对单片机技术及电子工程的兴趣,激发创新意识。

2. 学生在团队合作中,学会沟通、协作,培养团队精神和责任感。

3. 学生通过单片机开发,认识到科技对社会发展的作用,增强社会责任感和使命感。

分析课程性质、学生特点和教学要求:本课程为单片机开发板课程设计,旨在让学生通过实际操作,掌握单片机的基本知识和技能。

课程性质为实践性、综合性。

学生特点为具备一定的电子技术基础和编程能力,求知欲强,喜欢动手实践。

教学要求注重理论与实践相结合,培养学生的动手能力和创新能力。

课程目标分解为具体学习成果:1. 学生能够独立完成一个具有实际功能的小型单片机系统设计。

2. 学生能够编写程序,实现单片机对外围设备的控制和数据交互。

3. 学生能够在课程结束后,对单片机技术有更深入的了解,具备进一步学习和研究的能力。

二、教学内容1. 单片机原理概述:介绍单片机的概念、发展历程、基本组成和功能特点。

- 教材章节:第一章 单片机概述- 内容列举:单片机的发展历程、结构组成、工作原理。

2. 单片机编程基础:讲解单片机编程语言(如C语言)、编程规范和技巧。

- 教材章节:第二章 单片机编程基础- 内容列举:C语言基础、编程环境搭建、程序结构、常见编程技巧。

3. 单片机开发板使用:介绍单片机开发板的功能、外围设备及其使用方法。

- 教材章节:第三章 单片机开发板与应用- 内容列举:开发板硬件结构、外围设备接口、编程与调试方法。

单片机程序设计编程规范

单片机程序设计编程规范

单片机程序设计编程规范单片机程序设计编程规范引言编程规范在单片机程序设计过程中扮演着重要的角色。

良好的编程规范能够提高代码的可维护性和可读性,减少错误和调试时间。

本文将介绍单片机程序设计的编程规范,帮助程序员编写高质量的单片机程序。

命名规范1. 变量和函数名应使用有意义且具有描述性的名称。

使用驼峰命名法,首字母小写。

2. 宏定义应全部使用大写字母,多个单词之间用下划线分隔。

3. 全局变量应添加前缀`g_`,局部变量应添加前缀`l_`,静态变量应添加前缀`s_`。

4. 常量应使用全大写字母,单词之间用下划线分隔。

代码布局规范1. 使用适当的缩进,使代码结构清晰可读。

2. 在代码块之间留出空行,以提高可读性。

3. 使用合适的注释,解释功能和关键步骤。

4. 每行代码限制在80个字符以内,过长的代码需要换行,保持对齐。

编程风格规范1. 使用高级语言的控制结构,如`if-else`、`for`、`while`等,避免使用`goto`。

2. 避免使用过长的函数。

函数应保持简洁和单一职责。

3. 函数应有适当的参数和返回值,避免使用全局变量传递数据。

4. 避免使用魔法数值,应使用宏定义或常量来代替。

5. 使用合适的数据类型。

尽量使用有符号整数类型以保证算术运算的正确性。

错误处理规范1. 检查函数的返回值和错误码,及时处理异常情况。

2. 使用错误处理机制,如异常处理、错误码返回等,以防止程序异常崩溃。

3. 记录错误日志,方便调试和排查问题。

注释规范1. 添加适当的文件头注释,包括文件名、作者、日期等信息。

2. 在函数前方添加注释,描述函数的功能和输入输出参数。

3. 在关键代码段添加注释,解释代码的思路和实现细节。

性能优化规范1. 避免使用浮点运算,尽量使用整数运算。

2. 减少内存的动态分配和释放,尽量使用静态分配。

3. 避免频繁的字符串操作和内存拷贝。

4. 使用适当的数据结构和算法,提高程序的执行效率。

调试和规范1. 使用调试工具和断点来定位和解决问题。

51单片机C语言编程规范

51单片机C语言编程规范

原码工作室
位类型
这也是C51中扩充的数据类型,用于访问MCS51单片机中的可寻址的位单元。在C51中,支持两种 位类型:bit型和sbit型。它们在内存中都只占一个 二进制位,其值可以是“1”或“0”。
其中:用bit定义的位变量在C51编译器编译时, 在不同的时候位地址是可以变化的,而用sbit定义的 位变量必须与89C51单片机的一个可以寻址位单元或 可位寻址的字节单元中的某一位联系在一起,在C51 编译器编译时,其对应的位地址是不可变化的。
原码工作室
C51数据的存储
四、长整型变量的存储
长整型变量(long)为4个字 节,其存储方法与整型数据一样, 是最高位字节保存的地址最低 (在最前面),最低位字节保存 的地址最高(在最后面)。 如长整型变量的值为 0x12345678,在内存中的存放方 法如右图所示。不管是unsigned long数据还是signed long数据
原码工作室
数据转换
隐式转换的优先级顺序如下: bitcharintlongfloat signedunsigned 也就是说,当char型与int型进行运算时,先自 动对char型扩展为int型,然后与int型进行运算,运 算结果为int型。C51除了支持隐式类型转换外,还可 以通过强制类型转换符“()”对数据类型进行人 为的强制转换。 C5l编译器除了能支持以上这些基本数据类型之 外,还能支持一些复杂的组合型数据类型,如数组 类型、指针类型、结构类型、联合类型等这些复杂 的数据类型,在后面将相继介绍。
原码工作室
C51程序结构
(3)C51变量的存储模式与标准C中变量的存储模 式不一样,C51中变量的存储模式是与89C51单片机 的存储器紧密相关;
(4)C51与标准C的输入输出处理不一样,C51中 的输入输出是通过89C51串行口来完成的,输入输出 指令执行前必须要对串行口进行初始化;

单片机程序设计编程规范

单片机程序设计编程规范

单片机程序设计编程规范单片机程序设计编程规范1.引言单片机程序设计编程规范旨在提高程序的可读性、可维护性和可移植性,确保程序的质量和稳定性。

本文档详细介绍了单片机程序设计的各个方面,包括编码规范、命名规范、代码注释规范、模块化设计规范等。

2.编码规范2.1 代码缩进使用空格进行代码缩进,每级缩进为4个空格,不使用Tab键进行缩进。

2.2 命名规范a. 变量和函数命名变量和函数的命名采用小驼峰命名法,即首字母小写,后续单词首字母大写,如:myVariable、myFunction。

b. 常量命名常量的命名采用全大写,并用下划线分隔单词,如:MAX_VALUE。

2.3 注释规范a. 单行注释使用双斜线(//)进行单行注释,注释内容应简明扼要,解释代码的用途和含义。

b. 块注释使用斜线和星号(/)进行块注释,注释内容应对代码块进行详细的描述,包括输入输出信息以及注意事项。

3.模块化设计规范3.1 函数规范a. 函数功能单一性每个函数只负责完成一个具体的功能,避免函数功能冗杂,提高代码的复用性。

b. 函数命名规范函数的命名应准确地描述函数的功能,采用小驼峰命名法,如:calculateSum、printData。

3.2 模块规范a. 模块划分根据功能的不同,将相关函数组织成独立的模块,便于代码的管理和维护。

b. 模块间接口定义清晰规范的模块间接口,包括输入参数、返回值以及可能的异常处理,确保模块之间的协作正确有效。

4.异常处理规范4.1 错误码定义定义统一的错误码,便于错误的识别和处理。

4.2 异常处理a. 异常捕捉对可能发生的异常进行捕捉,并根据具体情况进行处理,避免程序崩溃或数据丢失。

b. 异常日志记录记录异常的相关信息,包括发生异常的时间、位置、原因等,便于排查问题和分析原因。

附件:1.示例代码:包含了一个遵循单片机程序设计编程规范的示例代码,供参考和学习。

法律名词及注释:1.著作权:指作品创作人对其所创作的作品享有的权利。

单片机keil课程设计

单片机keil课程设计

单片机keil课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理和功能,掌握Keil软件的使用方法。

2. 学生能掌握单片机编程的基本语法和逻辑,能阅读并理解简单的程序代码。

3. 学生能了解单片机在现实生活中的应用,理解其重要性和广泛性。

技能目标:1. 学生能够独立使用Keil软件进行单片机的程序编写、编译和调试。

2. 学生能够运用所学的知识,设计并实现简单的单片机控制系统,解决实际问题。

3. 学生通过课程实践,培养动手操作能力和团队协作能力。

情感态度价值观目标:1. 学生培养对单片机技术学习的兴趣,提高对电子科技的认识和热爱。

2. 学生在课程学习过程中,培养耐心、细心和解决问题的能力。

3. 学生通过学习单片机课程,增强创新意识和实践能力,为未来的职业发展奠定基础。

课程性质:本课程为实践性较强的学科,注重理论知识与实际操作的结合。

学生特点:学生具备一定的电子基础和编程知识,对单片机有一定了解,但实践经验不足。

教学要求:教师应注重理论与实践相结合,引导学生主动参与实践,培养学生的动手操作能力和创新能力。

在教学过程中,关注学生的个体差异,给予个性化指导,确保课程目标的实现。

通过课程学习,使学生能够达到上述具体的学习成果,为后续相关课程的学习打下坚实基础。

二、教学内容1. 单片机基础理论:介绍单片机的组成、工作原理和功能特点,关联教材第一章内容。

- 单片机的硬件结构- 单片机的指令系统- 单片机的编程模型2. Keil软件使用:学习Keil软件的安装、配置和使用方法,关联教材第二章内容。

- Keil软件界面及功能介绍- 创建和编译项目- 调试和下载程序3. 单片机编程语言:掌握单片机编程的基本语法和逻辑,关联教材第三章内容。

- C语言基础- 单片机编程规范- 常用编程指令和函数4. 单片机外围电路设计:介绍常用外围电路的原理和设计方法,关联教材第四章内容。

- 输入/输出接口电路- 中断和定时器电路- 通信接口电路5. 实践项目:设计并实现简单的单片机控制系统,关联教材第五章内容。

MCU-C程序基本编程规范

MCU-C程序基本编程规范

注释语言必须准确、易懂、简洁。 边写代码边注释,修改代码同时修改相应的注释,不再有用的注释要删除。
汇编和 C 中都用"//",取消";" 不使用段注释" /* */ "(调试时可用)
3.2 文件注释
文件注释必须说明文件名、函数功能、创建人、创建日期、版本信息等相关信息。 修改文件代码时,应在文件注释中记录修改日期、修改人员,并简要说明此次修改的目的。所有修改记录必须 保持完整。 文件注释放在文件顶端,用"/*……*/"格式包含。 注释文本每行缩进4个空格;每个注释文本分项名称应对齐。 /*********************************************************** 文件名称: 作 者: 版 本: 说 明: 修改记录: ***********************************************************/
} 嵌套越少越好,{}不准超过3层
5.6 switch 语句
1) 每个 case 和其判据条件独占一行。 2) 每个 case 程序块需用 break 结束。特殊情况下需要从一个 case 块顺序执行到下一个 case 块的时候除外,但 需要花括号在交界处明确注释如此操作的原因,以防止出错。 3) case 程序块之间空一行,且只空一行。 4) 每个 case 程序块的执行语句保持4个空格的缩进。 5) 一般情况下都应该包含 default 分支。 Switch ( ) { case x:
6.程序结构 6.1 基本要求
1) 有 main()函数的.c 文件应将 main()放在最前面,并明确用 void 声明参数和返回值。 2) 对由多个.c 文件组成的模块程序或完整监控程序,建立公共引用头文件,将需要引用的库头文件、标准寄存 器定义头文件、自定义的头文件、全局变量等均包含在内,供每个文件引用。通常,标准函数库头文件采用尖 角号< >标志文件名,自定义头文件采用双撇号″″标志文件名。 3) 每个.c 文件有一个对应的.h 文件,.c 文件的注释之后首先定义一个唯一的文件标志宏,并在对应的.h 文件中 解析该标志。 在.c 文件中: #define FILE_FLAG 在.h 文件中: #ifdef FILE_FLAG #define XXX #else #define XXX extern #endif 4) 对于确定只被某个.c 文件调用的定义可以单独列在一个头文件中、单独调用。

单片机汇编语言编程规范

单片机汇编语言编程规范

单片机汇编程序编码规范排版1.程序使用缩进方式;tab默认宽度设为8个空格;2.在指令和操作数之间,使用tab进行间隔,使代码清晰易读;3.不同代码段之间使用空行间隔;4.一行最多写一条指令;5.定义寄存器和标志位时,保持对齐,便于阅读和检查内存的使用情况。

注释1.注释在必要的地方必须有注释;注释要简洁,准确,易懂;2.注释应放在指令的上方或右方相邻位置,不可放在下方;如放在上方要用空行与上面的代码隔开;3.文件的头部,必须进行注释。

注释内容:文件名,作者,目的,功能,注意点,修改日志;4.子程序头部必须进行注释。

注释内容:目的,功能,输入参数,输出参数,涉及到的寄存器,调用的其他子程序,修改日志;5.对重要代码段的功能,意图进行注释,提供有用的,额外的信息;并在该代码段结束的地方加入注释标明该段代码结束;6.对应常量,寄存器的命名,如果其命名不能充分自注释的,要加入注释,说明其含义;7.保持代码和注释的一致性,调整代码时,更新相应的注释,删除无用的注释;命名1.标识符的缩写:a)缩写方法:i.取每个单词的头一个或几个字母;ii.使用变量名中有典型意义的单词;如count of failure 写成FailCount;iii.去掉无用的单词后缀;iv.使用标准的或通用的缩写;如int(中断),i2c(双线通信);b)缩写原则:i.缩写应保持一致;ii.在文件头部加入注解来说明非通用的缩写;2.变量名命名:<前缀>+主体;注释i.原则:简单,直观,不易混淆,能够望文知义;ii.单词的首字母大写,余下小写;不同单词词组之间最好用下划线隔开;3.常量命名:同上4.子程序命名:动词+名词;5.目前采用的统一命名前缀:i.寄存器名:R_;ii.子程序名:F_;iii.子程序中的标号:S_;iv.主程序中的标号:L_;v.位标志:B_;可维护性1.子程序中关系较为紧密的代码应该尽可能相邻;2.每个子程序的代码原则上少于200行;3.语句嵌套不得超过5层;4.避免相同的代码在多个地方出现;多用子程序;5.每个子程序完成单一的功能,不设计面面俱到的子程序;6.在子程序的说明中,应该指出使用的单片机型号;7.使用专门的初始化头文件对所有的端口和寄存器进行初始化。

单片机程序设计编程规范

单片机程序设计编程规范

单片机程序设计编程规范单片机程序设计编程规范1. 编程风格和规范1.1 代码命名规范1.1.1 变量和函数名使用小驼峰命名法1.1.2 常量名使用大写字母和下划线1.1.3 类名使用大驼峰命名法1.2 代码缩进和格式化规范1.2.1 使用四个空格进行缩进1.2.2 在适当的地方使用空行来提高代码的可读性1.2.3 使用代码格式化工具保持一致的代码风格1.3 注释规范1.3.1 使用注释来解释代码的目的和实现方式1.3.2 在必要的地方添加注释,但要注意不要过度注释 1.3.3 注释要与代码保持一致,即时更新1.4 错误处理规范1.4.1 使用合适的错误处理机制,如返回错误码或抛出异常1.4.2 在适当的地方添加错误处理代码,保证程序的稳定性和可靠性2. 程序结构和模块化2.1 主函数结构2.1.1 初始化操作2.1.2 主循环2.1.3 退出程序操作2.2 模块化设计2.2.1 将功能相似的代码块封装成函数2.2.2 使用头文件将相关函数和变量声明集中管理2.2.3 将各个模块分开编写,并在主函数中进行调用3. 嵌入式系统开发规范3.1 中断处理规范3.1.1 中断函数中应尽量减少执行时间3.1.2 使用适当的同步机制保证数据的正确性3.1.3 在处理中断前禁止其他中断3.2 低功耗设计规范3.2.1 合理使用睡眠模式和待机模式3.2.2 关闭不必要的外设以降低功耗3.2.3 使用定时器唤醒系统时,应确保精确性和可靠性4. 调试和测试规范4.1 代码调试4.1.1 使用一种可靠的调试工具4.1.2 在关键代码处增加日志信息以便调试4.1.3 避免使用过多的断点以提高调试效率4.2 系统测试4.2.1 对关键功能进行全面的测试4.2.2 编写完善的测试用例并进行模拟测试4.2.3 持续监控和优化系统性能5. 文档管理规范5.1 文档命名规范5.1.1 使用简洁明了的文档名称5.1.2 在文件名中包含版本号和日期信息5.1.3 使用统一的命名规则,方便查找和归档 5.2 文档书写规范5.2.1 使用简洁明了的语言表达清楚的意思 5.2.2 文档内容要完整、准确、可读性强5.2.3 在文档中引用必要的资料和来源本文档涉及附件:- 附件1:代码示例- 附件2:模块设计图本文所涉及的法律名词及注释:- 法律名词1:注释1- 法律名词2:注释2。

PIC32MX闪存编程规范

PIC32MX闪存编程规范

表 4-1:
器件 引脚名称 MCLR ENVREG VDD 和 AVDD(1) VSS 和 AVSS(1) VCAP TDI TDO TCK TMS
4 线接口引脚
引脚类型 I I P P P I O I I 编程使能 片上稳压器使能 电源 地 CPU 逻辑滤波器的电容连接 测试数据输入 测试数据输出 测试时钟 测试模式状态 引脚说明
PIC32MX
PIC32MX 闪存编程规范
1.0 器件概述
本文档定义了 PIC32MX 系列 32 位单片机的编程规范。 本编程规范旨在用于指导开发人员使用外部编程器工 具。对于正在开发 PIC32MX 器件应用程序的客户应使 用已提供器件编程支持的开发工具。 所有 PIC32MX 器件都为外部编程器工具提供了两种物 理接口: • 2 线在线串行编程 (In-Circuit Serial Programming™, ICSP™) • 4 线联合测试行动组织 (Joint Test Action Group, JTAG) 更多信息,请参见第 4.0 节 “连接至器件” 。 这两种方法都可以使用可下载的编程执行程序 (Programming Executive,PE) 。PE 可以从目标器件 RAM 中执行, 并对于编程器隐藏器件编程细节。 它还可 以消除与数据传输相关的开销,提高整体数据吞吐量。 Microchip 开发了可用于任意外部编程器的 PE。 更多信息,请参见第 16.0 节 “编程执行程序” 。 第 3.0 节 “编程步骤”介绍了一些高级编程步骤,并随 后给出了每个步骤的简要说明。本文档的相应章节中则 提供了详细的说明。 以下章节中提供了关于编程命令、 EJTAG 和直流规范的 更多详细信息: • 第 18.0 节 “配置存储器和器件 ID” • 第 19.0 节 “TAP 控制器” • 第 20.0 节 “交流 / 直流特性和时序要求”
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 编辑器 (3)2 程序文件的结构 (3)2.1 说明 (3)2.2 编译宏定义 (4)2.3 包含文件 (4)2.4 用户数据类型定义 (4)2.5 管脚定义 (5)2.6 常量 (5)2.7 变量 (5)2.8 正文 (6)2.8.1 正文顺序[推荐] (6)2.8.2 正文内容 (6)2.9 长的常量数组 (6)3 命名 (7)3.1 常量、编译宏命名 (7)3.2 变量命名 (7)3.3 函数命名 (8)4 程序的版式 (9)4.1 缩进:统一使用编辑器的TAB键进行缩进,同时设定其缩进量为系统默认 (9)4.2 空行:相对独立的程序块之间、变量说明之后必须加空行 (10)4.3 代码行 (11)4.3.1 一行代码只做一件事情 (11)4.3.2 if、for、while、do 等语句自占一行 (11)4.3.3 程序块的分界符独占一行 (12)4.3.4 多运算符的代码行,不使用默认优先级 (13)4.3.5 不要使用难懂的技巧性很高的语句 (13)4.4 空格 (14)4.4.1 必要时留空格,使代码更清晰[推荐] (14)4.4.2 二元操作符前后留空格 (14)4.4.3 一元操作符前后不留空格 (14)4.5 长行拆分 (15)4.5.1 较长的语句(>80字符)要分成多行书写 (15)4.5.2 循环、判断等语句要在低优先级操作符处划分新行 (16)4.5.3 函数或过程中的参数较长,则要进行适当的划分 (16)5 全局变量定义时初始化 (16)6 注释 (17)6.1 必须加注释的位置[推荐] (17)6.2 注释应适量且准确[推荐] (17)6.3 函数接口的注释格式 (17)6.4 变量的注释格式[推荐] (18)6.5 注释与所描述内容进行同样的缩排 (19)6.6 将注释与其上面的代码用空行隔开 (20)6.7 程序块结束行加注释[推荐] (20)7 EEPROM数据保护 (21)8 程序失效复位处理[推荐] (21)9 检查 (21)9.1 数组下标检查 (21)9.2 指针检查 (22)9.3 易混淆操作符检查 (22)9.4 右值变量检查 (22)9.5 差1错误检查 (22)9.6 变量溢出检查 (23)9.7 类型转换检查 (23)1编辑器程序统一使用VC的编辑器。

2程序文件的结构如果没有涉及使用平台化的用户文件,通常只能有一个用户主程序文件。

用户程序文件的内容按说明、编译宏定义、包含文件、用户数据类型定义、管脚定义、常量、变量、正文、长的常量数组的顺序编写。

2.1说明说明:说明位于用户程序文件的开头,主要内容有:(1)版权信息。

(2)文件名称。

(3)程序说明:说明程序用途、功能及使用方法等。

(4)版本记录。

(5)开发环境。

示例://版权信息//Copyright (c) 2001, XXXXXX有限公司产品开发部// All rights reserved.// 文件名称:filename.c// 程序说明:XXXXX主程序……//版本记录://V101://1、增加警铃输出延时;//2、修正****Bug。

//作者:***//时间:****.**.**//V100:正式发布。

//作者:***//时间:****.**.**//编译工具:Keil C 6.02.2编译宏定义说明:同一产品的不同硬件程序和系列产品的程序,应采用编译宏定义,来减少维护的工作量;2.3包含文件说明:包含引用的标准库头文件以及用户头文件。

用#include <filename.h> 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。

用#include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。

示例:#include <lib_header.h>#include “user_header.h”2.4用户数据类型定义说明:定义结构、联合、枚举以及其它非标准的数据类型;示例:typedef union MacData //联合{unsigned char Buf[16]; //缓冲区struct //结构{unsigned char Mac; //类型unsigned char Len; //长度unsigned char Addr; //地址unsigned char Data[13]; //数据}Msg;};#define uint unsigned int;//自定义数据类型2.5管脚定义说明:定义本程序使用的管脚。

2.6常量说明:●有特定意义的常数必须进行宏定义;●同一特定意义的常数如在多个地方应用,必须进行宏定义;●调试维护需要调整的常数必须进行宏定义;●无特定意义的循环上、下限,不需进行宏定义。

2.7变量说明:定义程序所使用的变量。

●有关联的、相同地址空间、初始化、不需初始化的变量要放在一起;2.8正文2.8.1正文顺序[推荐]说明:●应按主程序和中断程序的共用子程序、各中断相关子程序和中断程序、主程序相关子程序和主程序;●关系紧密的子程序应放在一起,并按照从低到高的层次放。

尽量取消函数的声明,可通过注释说明;●除主程序和中断程序外,在不影响可读性的情况下不应设置只一个地方调用的函数。

2.8.2正文内容说明:包含初始化程序、主循环体程序和中断程序。

2.8.2.1初始化程序[推荐]说明:应按管脚初始化、RAM初始化、内部设置初始化、外设初始化、打开定时器、打开中断的顺序进行初始化。

2.8.2.2主循环程序和中断程序[推荐]说明:●定时应采用计时器处理,不能存在长时间的停滞等待;●不允许多个事件使用一个软件计时器。

计时器宜采用倒计时;●中断事件的响应如果在主循环能够完成响应,应放在主循环。

2.9长的常量数组说明:在此定义长的常量数组,如字库、图案等。

3命名命名的风格必须保持一致。

3.1常量、编译宏命名说明:常量、编译宏全部大写,单词间使用下划线分隔。

示例:#define MAIN_DELAY_NUM 13.2变量命名说明:通常,在变量中加入前缀以增进人们对程序的理解。

其前缀的通用格式为:数据类型缩写+模块名+。

同时,为了区分全局和局部变量,也兼顾命名的方便,特采用如下变量命名规则:●全局变量大小写结合,数据类型缩写后,单词首字母大写;●局部变量全部小写,数据类型缩写后,使用下划线分隔各单词;局部变量在不影响可读性的前提下,可以不写数据类型;●unsigned char类型的缩写不写;●汇编中,与MPU数据总线(如8位、16位)一致数据类型的缩写不写。

数据类型缩写:boolean bchar clong lfloat fdouble dint iunsigned int ui指针p结构s输入管脚bi输出管脚bo示例://管脚定义sbit biFire = P1^1;sbit boFireRelay = P1^2;//全局变量定义bit bFault;unsigned char FireAckNum;unsigned char DeviceStatus[242];unsigned char* pDevice;char cSampleValue;long lTime;long* plEntry;float fRadius;double dArea;int iFireRelayDelay;unsigned int uiFaultRelayDelay;unsigned int uiSounderDelay[4];void GetSampleValue(void){unsigned char temp;bit b_fault;long l_fire_delay;}3.3函数命名说明:函数命名应当直观且可以拼读,可望文知意,不必进行“解码”。

标识符采用英文单词或其组合,便于记忆和阅读,并且每个单词的首字母大写,长单词可以缩写,但缩写要使用大家基本认可的,并且必要是进行注释说明。

下单词的缩写能够被大家基本认可:temp 可缩写为tmp;flag 可缩写为flg ;statistic 可缩写为stat ;increment 可缩写为inc;message 可缩写为msg;4程序的版式4.1缩进:统一使用编辑器的TAB键进行缩进,同时设定其缩进量为系统默认说明:程序要采用统一缩进风格编写。

在下列情况下,必须采用缩进:函数或过程、类的定义、结构的定义、枚举的定义、判断和循环语句中的程序都要采用如上的缩进方式。

但如果同一程序块的缩进级数太多(一般不超过5级),可考虑使用函数减少缩进级数。

示例://风格良好的格式void Function(float x, float y, float z){if (…){…while (…){…} // end of while…} // end of if…}//风格很差的格式void Function(float x, float y, float z){if (…){…while (…){…} // end of while…} // end of if…}4.2空行:相对独立的程序块之间、变量说明之后必须加空行说明:空行起着分隔程序段落的作用。

空行得体(不过多也不过少)将使程序的布局更加清晰。

空行不会浪费内存,虽然打印含有空行的程序是会多消耗一些纸张,但是值得。

所以不要舍不得用空行。

示例:如下例子不符合规范。

if (!IsValidNI (ni)){... // program code}repssnInd = ssnData[index].repssnIndex;repssnNI = ssnData[index].NI;应如下书写if (!IsValidNI (ni)){... // program code}repssnInd = ssnData[index].repssnIndex;repssnNI = ssnData[index].NI;4.3代码行4.3.1一行代码只做一件事情说明:如只定义一个变量,或只写一条语句。

这样的代码容易阅读,并且方便于写注释。

示例:(a)为风格良好的代码行int width; // 宽度int height; // 高度int depth; // 深度x = a + b;y = c + d;z = e + f;(b)为风格不良的代码行。

int width, height, depth; // 宽度高度深度X =a + b; y = c + d; z = e + f;4.3.2if、for、while、do 等语句自占一行说明:执行语句不得紧跟其后。

不论执行语句有多少都要加{}。

相关文档
最新文档