机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3335|回复: 5

单片机开发之C语言编程基本规范

[复制链接]
发表于 2017-8-6 10:30:29 | 显示全部楼层 |阅读模式
本规范主要针对单片机编程语言和08编译器而言,包括排版、注释、命名、变量使用、代码可测性、程序效率、质量保证等内容。
- K/ y! ?- [6 n: o/ H% F. U$ u
1.基本规则 " D- W( F7 Y. m. C' o) m0 w
格式清晰、注释简明扼要、命名规范易懂、函数模块化、程序易读易维护、功能准确实现、代码空间效率和时间效率高、适度的可扩展性、单片机编程规范-标识符命名
& S% @2 g6 b" W% ~# G
2.标识符命名 2.1 命名基本原则 ) U7 ^" V) [( ^7 }8 J1 G* O
1)命名清晰明了,有明确含义,使用完整单词或约定俗成的缩写。通常,较短的单词可通过去掉元音字母形成缩写;较长的单词可取单词的头几个字母形成缩写。即"见名知意"。(2)命名风格要自始至终保持一致。 , ?/ I, x( x$ T. t: N
3)命名中若使用特殊约定或缩写,要有注释说明。8 T* L' ?) B0 D" ?, A7 e
4)同一软件产品内模块之间接口部分的标识符名称之前加上模块标识。
; i( f6 u0 |+ `) o$ m5 [" n
2.2 宏和常量命名 . K' @( h; J3 V" E" \5 T: ^
宏和常量用全部大写字母来命名,词与词之间用下划线分隔。对程序中用到的数字均应用有意义的枚举或宏来代替。
5 W. T. @' w5 j8 t: r# y4 _
2.3 变量命名
( z1 N) l" o! b! Z3 P, J4 r- u
变量名用小写字母命名,每个词的第一个字母大写。类型前缀(u8\s8 etc.)全局变量另加前缀g_。, Q: ~  _7 {5 b- y3 q- y
局部变量应简明扼要。局部循环体控制变量优先使用i、j、k等;局部长度变量优先使用len、num等;临时中间变量优先使用temp、tmp等。2 h; `) _% m+ W. ~" k
2.4 函数命名 5 B) e( G6 H2 m7 i% Z
函数名用小写字母命名,每个词的第一个字母大写,并将模块标识加在最前面。5 i/ o% b- L* T6 P6 b
2.5 文件命名 9 W' X+ X4 N$ L$ m2 V2 n
一个文件包含一类功能或一个模块的所有函数,文件名称应清楚表明其功能或性质。5 r9 I5 r  X. D& G
每个.c文件应该有一个同名的.h文件作为头文件。
; [7 o0 f2 p* [. \* I/ o: R/ ?0 \8 P
3.注释 3.1 注释基本原则 $ I3 T1 G% [0 n1 ^2 {. n- }, s% B
有助于对程序的阅读理解,说明程序在"做什么",解释代码的目的、功能和采用的方法。
4 C) A* y7 ^+ F' m$ L/ ?
一般情况源程序有效注释量在30%左右。, U& v/ f4 y- Q! R5 T
注释语言必须准确、易懂、简洁。
2 h2 {" D+ R) r7 f; }3 j6 R$ P
边写代码边注释,修改代码同时修改相应的注释,不再有用的注释要删除。
  p! q/ F1 Y# H- ^: B
汇编和C中都用"//",取消";"  不使用段注释" /*  */ "(调试时可用)
% @. p" ~4 ?( |" p/ O# k. e- m
3.2 文件注释 $ c/ D; T3 Q7 N8 o- k, \* s
文件注释必须说明文件名、函数功能、创建人、创建日期、版本信息等相关信息。
3 }9 p! s' t# n4 ?& d, p
修改文件代码时,应在文件注释中记录修改日期、修改人员,并简要说明此次修改的目的。所有修改记录必须保持完整。' c- n/ O7 F, d6 r. G9 F$ p
文件注释放在文件顶端,用"/*……*/"格式包含。
$ c2 w4 L. x& B
注释文本每行缩进4个空格;每个注释文本分项名称应对齐。
  \9 s8 N0 V% J6 X- w) x. ~
/***********************************************************) }8 @4 @6 v; A( E. o5 P/ H& g
文件名称:0 q# t9 w  j9 s% d) l# l( Z
者:
+ F+ P# i* w+ i5 Q& ?
本:* n0 Y2 ]! R. B5 _/ }+ C- R. c
明:1 U) s# a+ \# i" R
修改记录:
, p  K: Q$ S9 \3 j" k
***********************************************************/- K6 F0 c! R& S# A, s
3.3 函数注释 * u( t1 V# m) i" Y4 g! @/ {
3.3.1 函数头部注释& y- H1 ?& E% d+ d9 H6 y
函数头部注释应包括函数名称、函数功能、入口参数、出口参数等内容。如有必要还可增加作者、创建日期、修改记录(备注)等相关项目。8 E+ ^0 S# b* x% ~& B6 N5 p6 n
函数头部注释放在每个函数的顶端,用"/*……*/"的格式包含。其中函数名称应简写为Name(),不加入、出口参数等信息。
' c. \$ @& c0 N% Y1 H
/***********************************************************
6 t+ G7 G1 |: ]+ d
函数名称:
5 }! Z4 `( u% d( b' v$ b  F$ H
函数功能:
% E: C* j1 E% r& N- P. s# U* d1 E' |
入口参数:
2 {0 U+ A* V/ |+ k: v4 l
出口参数:( P7 r% F% V* R; A
注:& k( `0 o3 y" j' w# E  s* l; }6 u+ p7 f
***********************************************************/2 l3 h7 O5 N& `7 j$ v4 x
3.3.2 代码注释信、盈、达‘腾讯:以一齐捂捂吧久零久要’! c# T) W! {8 ~& A$ t% S
代码注释应与被注释的代码紧邻,放在其上方或右方,不可放在下面。如放于上方则需与其上面的代码用空行隔开。一般少量注释应该添加在被注释语句的行2尾,一个函数内的多个注释左对齐;较多注释则应加在上方且注释行与被注释的语句左对齐。9 T! n1 T7 @) g
函数代码注释用"//…//"的格式。
9 g' y4 ?7 m4 L& b9 q; H4 x; S
通常,分支语句(条件分支、循环语句等)必须编写注释。其程序块结束行"}"的右方应加表明该程序块结束的标记"end of ……", 尤其在多重嵌套时。- w+ f* H! Y+ o
3.4 变量、常量、宏的注释
5 N/ N' U# \0 T! k6 Z
同一类型的标识符应集中定义,并在定义之前一行对其共性加以统一注释。对单个标识符的注释加在定义语句的行尾。8 \5 ?/ E$ P# N4 |" X
全局变量一定要有详细的注释,包括其功能、取值范围、哪些函数或过程存取它以及存取时的注意事项等。
- R1 X7 b& c( G+ {1 X* L
注释用"//…//"的格式。 ! k9 W0 {3 j. q4 b7 ^  [

' z+ H% G& n7 P- d; |' g/ O; ?
回复

使用道具 举报

发表于 2017-8-6 14:24:58 | 显示全部楼层
不仅单片机,其余机械相关控制程序开发也应该这样编程!
回复 支持 反对

使用道具 举报

发表于 2017-8-6 15:43:31 | 显示全部楼层
谢谢,先收藏起来
回复 支持 反对

使用道具 举报

发表于 2017-8-6 19:40:13 | 显示全部楼层
单片机的基础知识,值得收藏一波~
回复 支持 反对

使用道具 举报

发表于 2017-8-8 11:04:22 | 显示全部楼层
学习了
回复

使用道具 举报

 楼主| 发表于 2017-8-9 18:14:16 | 显示全部楼层
共同学习进步
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-5-11 08:17 , Processed in 0.056450 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表