ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:26.31KB ,
资源ID:2854409      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2854409.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ISOS编程规范说明书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ISOS编程规范说明书.docx

1、ISOS编程规范说明书ISOS V5.0编程规范说明书2012年2月目录1 引言 11.1 编写目的 12 概述 12.1 目标 12.2 适用范围 12.3 需求 12.4 局限 13 编程规范总原则 14 标识符 24.1 变量名 24.1.1 不同作用域变量的命名 24.1.2 变量类型的重定义 24.1.3 不同类型变量的命名(匈牙利命名法) 24.1.4 指针变量的命名 34.1.5 函数指针变量的命名 34.1.6 在某一模块中定义的全局变量,变量名的开始需有模块名。 44.2 函数名 44.3 数据结构 45 排版 45.1 用缩进格式书写代码 55.2 长语句 55.3 空行和

2、空格的使用 56 表达式与基本语句 66.1 运算表达式 66.2 if 语句 66.2.1 布尔变量与零值比较 66.2.2 整型变量与零值比较 76.2.3 浮点变量与零值比较 76.2.4 对if 语句的补充说明 76.3 Switch语句 77 常量 87.1 为什么要用常量 87.2 定义常量的方法 87.2.1 #define 宏定义 87.2.2 const 常量 97.2.3 枚举 97.3 函数返回值常量定义 97.4 特性开关宏定义 98 注释 98.1 注释的基本概念 108.2 注释的准确性 108.3 变量、常量的注释 108.4 函数的注释 118.5 修改注释 1

3、28.6 /* */ 、/*以及/* 129 文件布局 129.1 C以及h文件头要求 129.2 C源代码文件布局要求 139.3 H头文件要求 159.4 H头文件布局 159.5 ip_pub.h 169.6 ip_def.h 169.7 ip_ext.h 179.8 ip_fun.h 179.9 各个H头文件关系 171 引言1.1 编写目的作为一个大型的项目,每个工程师的编程习惯都不相同,所以对编程风格、规范进行统一就显得十分必要。2 概述2.1 目标本文档为统一ISOS平台的编程规范而写作。2.2 适用范围本文档虽然为ISOS平台制作,但可以推广到其他项目组。2.3 需求 程序最重

4、要的是正确性,其次是可维护性,最后才是效率; 学习如何写优美的程序与学习如何正确地编写代码同样重要; 让程序尽量简单易懂,即使违背了某些规则也无关紧要; 一个运行正常但没有注释的程序如同一个等待爆炸的定时炸弹,因为早晚会有人修改或升级这个程序; 好风格应该成为一种习惯。如果你在开始写代码时就关心风格问题,如果你花时间去审视和改进它,你将会逐渐养成一种好的编程习惯。一旦这种习惯变成自动的东西,你的潜意识就会帮你照料许多细节问题,甚至你在工作压力下写出的代码也会更好。2.4 局限此文档完成时间比较仓促,需要在后续实践中逐步完善。3 编程规范总原则 本规范具有强制性,一旦制定,必须按照规范执行 规范

5、在未经批准修改之前,必须按照现行规范执行4 标识符标识符的命名要清晰、明了,有明确含义。使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。 标识符应当采用英文单词或其组合,切忌使用汉语拼音来命名。4.1 变量名4.1.1 不同作用域变量的命名 局部变量尽量包含较多的信息; 全局变量以首字母以g_开始命名; 定义类型和宏定义常数以大写字母命名; 变量的作用域越大,它的名字所带有的信息就应该越多。 局部变量: ULONG ulStudentAge; 全局变量: ULONG g_ulSudentAge; 宏定义常数: #define STUDENT_NUM 10 类型定义: typedef

6、INT16S int;4.1.2 变量类型的重定义由于变量类型比较多,为了整个项目的统一,对一些常用的变量类型进行重新定义:typedef char CHAR ; /有符号的单字节变量类型typedef unsigned char UCHAR; /无符号的单字节变量类型typedef short int SHORT; /有符号的双字节变量类型typedef unsigned short int USHORT; /无符号的双字节变量类型typedef long LONG; /有符号的四字节变量类型typedef unsigned long ULONG ; /无符号的四字节变量类型typedef

7、long long LLONG ; /有符号的八字节变量类型typedef unsigned long long ULLONG; /无符号的八字节变量类型typedef float FLOAT ; /单精度浮点变量类型typedef double DOUBLE ; /双精度浮点变量类型typedef void VOID; typedef int BOOL; / BOOL变量typedef struct volatile int counter; ATOMIC_S; /需要原子操作的变量类型4.1.3 不同类型变量的命名(匈牙利命名法)匈牙利命名法是一种命名约定。匈牙利命名法把变量的类型 (或者

8、它的预期使用)等信息编码在变量名中。一些常用的匈牙利命名法前缀数据类型 前缀 例子 CHAR c cInChar UCHAR uc ucOutChar SHORT s sReturnValue USHORT us usControlWord LONG l lNumRecs ULONG ul ulLength LLONG ll llNumRecs ULLONG ull ullLengthFLOAT f fStatic DOUBLE d dLengthBOOL bl blFlagTXT_BOX_S st stBox/结构enum TXT_BOX_M em emBox/枚举union PROT_U

9、un unProto/联合ATOMIC_S at atDataRef/原子4.1.4 指针变量的命名 对于指针的定义,名称大小写根据指针为全局/局部变量来定,但指针名必须以小写的“p”开头。 如: ULONG *g_pulDay; /全局指针 ULONG *pulKeyday; /局部指针 ULONG *ppulKeyDay; /指针的指针4.1.5 函数指针变量的命名 对于函数指针变量必须以pfunc开头。如: main() ULONG SSP_Max(LONG, LONG); ULONG (*pfuncMax)(); /指向函数的指针申明 LONG a,b,c; pfuncMax = SS

10、P_Max; /给指向函数的指针赋值 SSP_Scanf(“%d, %d”, &a, &b); c= (*pfuncMax)(a, b); /调用指向的函数 SSP_Printf(“a= %d, b= %d, max = %d”, a, b, c);4.1.6 在某一模块中定义的全局变量,变量名的开始需有模块名。如: 模块 KEY.C 中的变量: USHORT g_usKeyNum; ULONG g_ulKeyNumBuff10;4.2 函数名 函数名的命名应象全局变量一样采用首字母大写方式 函数名的开始应以“ 模块名_ ”的格式注明函数所属模块例如: KEY.C模块的函数 VOID KEY_

11、Init(VOID); VOID KEY_StartScan(VOID); VOID KEY_StopScan(VOID);4.3 数据结构 数据结构名称必须以st开头 数据结构必须重新定义为一个以_S结尾,紧接着大写字母表示的名称例如: typedef struct stTxtBox ULLONG *pullTxt; /文字 ULLONG ullTxtFont; /字体 ULLONG ullSta; /文本框状态模式 ULLONG ulWorkMod; /工作模式TXT_BOX_S;5 排版名字的合理选择可以帮助理解程序。同样,也应该以尽可能一目了然的形式书写语句。这就像保持书桌整洁可以使你

12、容易找到东西一样。5.1 用缩进格式书写代码 函数或过程的开始、结构定义及循环、判断等语句中的代码都要采用缩进; 缩进的空格数为4个; 使用空格键,不使用TAB键; 程序块的分界符(和)应各独占一行。例: for(i = 0; i 0) total_score += fScorei; 5.2 长语句 较长的语句(多于80字符)要分成多行书写; 长表达式要在低优先级操作符处划分新行,操作符放在新行之首; 划分出的新行要进行适当的缩进,使排版整齐,语句可读; 不允许把多个短语句写在一行中,即一行只写一条语句。 例:修改前: MeasData.TransTdir=TransTdir*SetData.

13、Filter+TransTdir*(1-SetData.Filter); 修改后:MeasData.TransTdir = TransTdir * SetData.Filter + TransTdir * (1 - SetData.Filter); 5.3 空行和空格的使用 相对独立的程序块之间、变量定义之后语句开始以前必须加空行 ; 逗号、分号只在后面加空格 ; 比较操作符、赋值操作符、算术操作符、逻辑操作符、位域操作符等双目操作符的前后加空格; “!”、“”、“+”、“-”、“&”等单目操作符前后不加空格; -、.前后不加空格。 例: VOID Func1(LONG lx, LONG ly

14、, LONG lz); / 良好的风格VOID Func1 (LONG lx,LONG ly,LONG lz); / 不良的风格 x = a b ? a : b; / 良好的风格 x=a= b & c d & c + f = g + h; /复合表达式过于复杂 不要有多用途的复合表达式;例如:d = (a = b + c) + r ; /应拆分为两个语句:a = b + c;d = a + r; 如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级。例如: if(a | b & a & c) /不良的风格if(a | b) & (a & c) /良好的风格注意: 只需记住加减运算的优先级低于乘除运算,其它地方

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1