软件编程规范总结

合集下载

软件开发中的IEC编程规范

软件开发中的IEC编程规范

软件开发中的IEC编程规范在软件开发中,IEC编程规范(International Electrotechnical Commission,国际电工委员会)是一种被广泛采用的编程规范,它的目的是提高软件代码的质量和可维护性。

IEC编程规范规定了一些约定和规则,帮助软件开发人员编写出更加规范、可读性更好、可靠性更高的代码。

本文将深入探讨软件开发中的IEC编程规范。

一、编码风格与规范编码风格与规范是IEC编程规范的重要部分,其旨在确保软件代码的整洁、可读性强,使得程序员可以更快地理解代码并迅速进行修改。

以下是编码风格与规范的主要内容:1.文件命名规范:对于每一个代码文件,文件名应该能够反映出文件的内容和用途,命名应该使用小写字母,不允许使用特殊字符。

2.变量命名规范:变量名应该清晰明确,能够反映出变量的用途,不应使用过于简短和不明确的变量名。

3.代码缩进规范:代码应该缩进以保证布局的整洁,一般情况下采用四个空格或一个制表符。

4.代码注释规范:注释应该详细描述函数、变量和代码块的作用,以便其他程序员可以理解更好地代码。

5.函数声明规范:每个函数应该有一个清晰的函数声明,包括函数名、传入参数、返回值和函数作用的简要描述。

6.代码错误处理规范:应该及时提示和处理代码产生的错误,例如使用try-catch块来捕获并处理异常,或者报告已知的错误信息。

7.代码的可读性规范:代码应该清晰、简单、易于理解和阅读,这可以通过分解较大的函数、避免使用嵌套和使用代码注释来实现。

二、变量声明与使用在IEC编程规范中变量声明与使用是重要的编程方面,其目的是提高代码的可读性和可靠性。

以下是变量声明与使用的主要规范:1.变量应该在声明时被初始化,这有助于防止意外的bug情况。

2.避免使用全局变量,代码应该使用局部变量和参数来处理数据。

3.变量应该被尽可能地限制作用域,尤其是与实时性相关的应用中。

4.避免使用不合理的符号,例如字母O与数字0之间混淆等。

软件编程规范

软件编程规范

软件编程规范软件编程规范是一套旨在提高软件开发质量和可维护性的准则和规范。

它们定义了编程风格、命名约定、代码组织结构、注释规范等方面的规则,旨在提高代码的可读性、可理解性和可维护性。

下面是一些常见的软件编程规范:1. 命名约定变量、函数、类、文件等命名要具有描述性,使用有意义的名称,遵循驼峰命名法或下划线命名法。

避免使用单个字母或无意义的缩写。

2. 缩进和空格使用一致的缩进风格,通常是使用4个空格或者制表符。

在运算符两侧和逗号后添加空格,以提高可读性。

3. 注释规范在代码中添加清晰的注释,解释代码的逻辑和意图。

注释应该与代码一起更新,以保持同步。

注释长度应适中,不要过于冗长,但也不要过于简单。

4. 异常处理在必要的地方添加异常处理机制,以便在程序出错时能够恢复或处理异常情况。

避免使用捕捉所有异常的通配符异常处理语句,应该明确地捕获和处理特定类型的异常。

5. 函数和方法函数和方法应该尽可能地短小和单一责任原则。

函数和方法名应该具有描述性,不要使用虚词或无意义的名称。

6. 代码注重可重用性代码应该根据功能进行模块化和组织,以便可以被其他程序或模块重复使用。

避免使用全局变量和硬编码的常量,而是使用参数和配置文件来实现可配置性。

7. 类和对象类和对象应该具有清晰的结构和接口,并按照单一责任原则进行设计。

类和对象之间的关系应该清晰明确,避免过度耦合。

8. 设计模式应该根据实际需求选择合适的设计模式,以提高代码的可扩展性和可维护性。

常见的设计模式包括单例模式、工厂模式、观察者模式等。

9. 版本控制使用版本控制软件进行代码管理,定期提交代码,并为每个提交添加有意义的注释。

遵循版本控制的最佳实践,例如分支管理和代码审查。

10. 测试和调试编写测试代码来验证程序的正确性和健壮性。

使用调试工具来分析和解决程序的错误和异常情况。

以上只是一些常见的软件编程规范,具体的规范可能因编程语言、项目需求和团队约定而有所不同。

遵循软件编程规范可以提高代码质量和可维护性,减少程序错误和调试时间,有助于提高软件开发效率和团队协作效果。

软件编程规范

软件编程规范

软件编程规范文档信息文档摘要软件编程规范注重于程序的物理结构和外观,而不是程序的逻辑结构。

它们使编码更加容易阅读、容易理解而且容易维护。

相关文档变更历史重要声明版权所有(C) 2008地址:电话:邮件:网址:目录编程规范 (7)1.1.命名样式规范 (7)1.2.通用命名约定 (9)1.3.特殊命名约定 (10)1.3.1.变量/常量命名 (10)1.3.2.控件对象命名 (11)1.3.3.程序集命名 (12)1.3.4.命名空间命名 (12)1.3.5.类型成员命名 (13)1.3.6.参数命名 (14)1.3.7.枚举命名 (14)1.4.注释规范 (15)1.4.1.代码文件注释 (15)1.4.2.属性和方法注释 (15)1.4.3.语句的注释 (16)1.4.4.任务注释 (16)1.5.代码排版规范 (16)1.6.其他编程规范和约定 (17)1.6.1.WEB页面层 (17)1.6.2.业务逻辑层 (17)1.6.3.数据访问层 (18)1.6.4.数据实体层 (18)1.6.5.其他 (18)2.SQL Server编程规范 (19)2.1.命名规范 (19)2.1.1.数据库 (19)2.1.2.数据仓库 (19)2.1.3.数据架构 (19)2.1.4.表命名 (20)2.1.5.视图命名 (20)2.1.6.字段命名 (20)2.1.7.存储过程命名 (21)2.1.8.函数命名 (21)2.1.9.主键、外键、索引命名 (21)2.1.10.参数、变量命名 (22)2.2.注释规范 (22)2.2.1.代码注释 (22)2.2.2.语句的注释 (23)2.3.代码排版规范 (23)2.3.1.SELECT语句排版 (24)2.3.2.INSERT语句排版 (24)2.3.3.UPDATE语句排版 (24)2.3.4.DELETE语句排版 (25)2.4.编程规范 (25)2.4.1.大小写 (25)2.4.2.使用“;” (25)2.4.3.字段长度 (25)2.4.4.数据类型选择 (25)2.4.5.表名别名 (26)2.4.6.排序 (26)2.4.7.使用“*” (26)2.4.8.BEGIN...END 块 . (26)2.5.其他编程规范和约定 (26)3.JavaScript编程规范 (28)3.1.命名规范 (28)3.1.1.类命名 (28)3.1.2.属性、方法命名 (28)3.1.3.常量、枚举命名 (28)3.1.4.变量命名 (28)3.1.5.特殊命名规范 (28)3.2.注释规范 (29)3.2.1.文件注释 (29)3.2.2.对象注释 (29)3.2.3.函数注释 (30)3.2.4.语句的注释 (30)3.3.排版规范 (30)3.3.1.块布局 (31)3.3.2.空白 (32)3.4.编程规范 (32)4.附录 (34)4.1.Xml文档注释标记 (34)4.2.部分常用单词缩写 (38)4.3.部分常用字段命名 (39)编程规范1.1. 命名样式规范大小写样式标识符的大小写规则如果标识符由多个单词组成,请不要在各单词之间使用分隔符,如下划线(“_”)或连字符(“-”)等。

软件编程规范总则

软件编程规范总则

软件编程规范总则1. 前言软件编程规范是指在软件开发过程中,为了提高代码质量、可读性和可维护性,制定的一系列约定和规则。

本编程规范总则旨在统一团队开发中的编码风格,提高代码的可读性和可维护性。

2. 命名规范良好的命名规范可以提高代码的可读性,建议按照以下规则进行命名:2.1 文件和目录命名•文件和目录名称应采用有意义的英文单词或短语拼写,使用小写字母和下划线进行分隔。

•目录名称应统一使用复数形式。

•文件名称应能准确描述文件的内容。

2.2 变量和函数命名•变量和函数的命名应采用小驼峰命名法,即首字母小写,后续单词首字母大写,不使用下划线。

•变量名应具有明确的含义,并尽量避免使用缩写。

•函数名应能准确描述函数的功能。

2.3 类和接口命名•类和接口的命名应采用大驼峰命名法,即每个单词的首字母都大写,没有下划线。

•类名应具有明确的含义,并使用名词或名词短语。

•接口名应具有明确的含义,并以“able”或“ible”结尾,表示具有某种能力或约束。

3. 代码风格统一的代码风格可以提高代码的可读性,方便团队协作和代码维护。

以下是一些常见的代码风格规则:3.1 缩进和换行•使用 4 个空格进行缩进,不使用制表符。

•每行代码不应超过 80 个字符。

•适当的换行可以增强代码的可读性。

3.2 空格和括号•使用空格将运算符与操作数分隔开,可以提高可读性。

•在逗号、分号、冒号后面使用空格。

•左大括号不另起一行,放在行尾,与关键字或函数名之间用一个空格隔开。

3.3 注释规范良好的注释可以方便他人理解代码的意图。

以下是一些注释规范建议:- 函数、类和接口应该有相应的注释,描述其功能、参数和返回值。

- 重要的代码片段应添加单行注释,解释代码的意图和设计思路。

- 长段的注释使用块注释,并应在开头写明注释的创建时间和作者。

4. 异常处理异常处理是保证代码稳定性的重要步骤。

以下是一些异常处理的规范建议: -在可能发生异常的地方使用 try-catch 块处理异常。

软件编程规范手册编程规范和代码风格建议

软件编程规范手册编程规范和代码风格建议

软件编程规范手册编程规范和代码风格建议软件编程规范手册:编程规范和代码风格建议引言:在软件开发过程中,编程规范和代码风格的遵守对于保证代码质量、可维护性以及团队协作起着至关重要的作用。

本手册旨在为开发人员提供合理的编程规范和代码风格建议,以便能够产生一致、高效和易于维护的代码。

1. 命名规范在编程中,良好的命名规范可以提高代码的可读性和可维护性。

以下是一些建议的命名规范:1.1 变量和函数名应该能够准确地描述其用途,并且采用对应的英文单词或常用缩写。

1.2 使用驼峰命名法,即首字母小写,后续单词首字母大写,例如:userName, getUserName。

1.3 避免使用无意义的命名,如a、b、x等。

1.4 类名应该使用大写字母开头,采用驼峰命名法,例如:LoginService, UserService。

2. 缩进与空格正确的缩进和空格使用可以使代码更易读,以下是一些建议:2.1 使用4个空格作为缩进,而不是制表符。

2.2 在不同的逻辑块之间使用空行进行区分,提高可读性。

2.3 操作符前后应加上空格,如:a = b + c。

2.4 避免行尾空格,可能引起编译器或其他工具的不必要问题。

3. 注释规范注释是代码中重要的补充,能够增加代码的可读性和可维护性。

以下是一些建议:3.1 在每个函数、类和复杂逻辑块的开头使用注释,清楚描述其功能。

3.2 对不容易理解的代码进行注释,解释其目的和原理。

3.3 注释应该简洁明了,不过度注释。

3.4 避免使用无效或过时的注释,删除不再需要的注释。

4. 异常处理良好的异常处理是编程中的重要部分,以下是一些建议:4.1 程序中的异常需要及时捕获并处理,避免出现未处理异常导致程序崩溃的情况。

4.2 使用try-catch-finally结构来处理异常,确保资源的释放。

4.3 不建议在finally块中使用return语句,可能导致代码逻辑不清晰。

5. 代码格式化统一的代码格式可以使代码更易读和易于维护,以下是一些建议:5.1 使用适当的缩进和空行来组织代码块,增加可读性。

软件编程规范(MISRA_C)

软件编程规范(MISRA_C)

软件编程规范目录一环境二语言扩展三文档四字符集五标识符六类型七常量八声明与定义九初始化十数值类型转换十一指针类型转换十二表达式十三控制语句表达式十四控制流十五 switch语句十六函数十七指针和数组十八结构与联合十九预处理指令二十标准库二十一运行时错误一环境规则1.1(强制):所有代码都必须遵照ISO 9899:1990 “Programming languages - C”,由ISO/IEC 9899/COR1:1995,ISO/IEC 9899/AMD1:1995,和ISO/IEC9899/COR2:1996 修订。

规则1.2(强制):不能有对未定义行为或未指定行为的依赖性。

这项规则要求任何对未定义行为或未指定行为的依赖,除非在其他规则中做了特殊说明,都应该避免。

如果其他某项规则中声明了某个特殊行为,那么就只有这项特定规则在其需要时给出背离性。

规则1.3(强制):多个编译器和/或语言只能在为语言/编译器/汇编器所适合的目标代码定义了通用接口标准时使用。

如果一个模块是以非C 语言实现的或是以不同的C 编译器编译的,那么必须要保证该模块能够正确地同其他模块集成。

C 语言行为的某些特征依赖于编译器,于是这些行为必须能够为使用的编译器所理解。

例如:栈的使用、参数的传递和数据值的存储方式(长度、排列、别名、覆盖,等等)。

规则1.4(强制):编译器/链接器要确保31 个有效字符和大小写敏感能被外部标识符支持。

ISO 标准要求外部标识符的头6 个字符是截然不同的。

然而由于大多数编译器/链接器允许至少31 个有效字符(如同内部标识符),因此对这样严格而并不具有帮助性的限制的适应性被认为是不必要的。

必须检查编译器/链接器具有这种特性,如果编译器/链接器不能满足这种限制,就使用编译器本身的约束。

规则1.5(建议):浮点应用应该适应于已定义的浮点标准浮点运算会带来许多问题,一些问题(而不是全部)可以通过适应已定义的标准来克服。

软件开发编程规范

软件开发编程规范
while (true) {
n++; }
3.4 换行
当表达式超出或即将超出规定的列宽,遵循以下规则进行换行 1. 在逗号后换行; 2. 在操作符前换行; 3. 一句完整的表达式换行后,新行要加入缩进; 4. 规则 1 优先于规则 2。 当以上规则会导致代码混乱的时候自己采取更灵活的换行规则。
3
3.5 空行
大小写
示例
Pascal AppDomain
Pascal mon.Utils
Pascal BackColor
Pascal ToString
Pascal IDisposable
Camel typeName
Pascal ErrorLevel
Pascal FatalError
Pascal ValueChange
n++; } PrintSize(“size is “ + size + “\n”);
4. 语句中的表达式之间用空格隔开。如 5.
for (expr1; expr2; expr3)
4
4 程序注释
4.1 注释原则
1. 修改代码时,总是使代码周围的注释保持最新。 2. 在每个例程的开始,提供标准的注释样本以指示例程的用途、假设和限制很有帮
FileStream,而不是 CFileStream。 5. 不要使用下划线字符(_)。
5.6 接口
1. 使用 Pascal 大小写。 1. 用名词或描述行为的形容词命名接口。例如,接口名称 IComponent 使用描述性
名词。接口名称 ICustomAttributeProvider 使用名词短语。名称 IPersistable 使用形容词。 2. 少用缩写。 3. 给接口名称加上字母 I 前缀,以指示该类型为接口。

软件设计规范(编程)

软件设计规范(编程)

软件设计规范1 命名规则1.1 包的命名规则包是一组相关类和接口的集合,它将类和接口有机地组织成层次结构,使类和接口具有清晰的名称空间。

包的命名规则如下:(1)包名应该有意义,能反映包中的内容。

(2)包名应该是独有的、不可重复的。

(3)包名可以采用倒序的公司域名,本系统的所有包都以“com”开头。

1.2 类和接口的命名规则类和接口是Java的核心成员,必须要有一个中心目的,其命名规则如下。

(1)类与接口的名字应该表达其中心目的。

(2)类与接口的名字一般是大写字母开头。

(3)类与接口的名字可以由若干单词组成,单词的第一个字母采用大写字母,其余字母采用小写字母。

(4)一般不用动词来命名。

1.3 方法的命名规则方法用来描述对象所具有的功能或操作,反映对象的行为,其命名规则如下。

(1)方法一般使用动词。

(2)方法名的第一个字母应该是小写。

(3)在多个单词混合的情况下,第一个单词后的所有单词的第一个字母大写,其余字母小写。

1.4 变量的命名规则变量包括成员变量、静态变量、类对象以及局部变量等。

变量的命名规则如下:(1)变量名应该易于记忆、理解,紧凑而有意义。

(2)变量名的第一个字母应该小写,避免使用|“_”或“$”作为第一个字母。

(3)在多个单词混合的情况下,第一个单词后的所有但系的第一个字母大写,其余小写。

1.5 常量的命名规则常量一般采用大写字母单词命名,单词之间用下划线连接。

例如,以下的代码定义了表示最大的长度和最小常量的两个常量。

static final int MIX_LENGTH = 1;static final int MAX_LENGTH = 100;2 注释方法注释的目的在于说明程序,给自己或他人在阅读程序的时候提供帮助,增强程序的可读性。

源程序文件注释,块注释,和行注释2.1 源程序文件地注释源程序文件注释一般在文件开头说明文件地功能,目的以及开发的相关信息,主要包括文件名、功能、目的、版本、开发者、开发时间、最后修改时间、修改人信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件编程规范总结本规范的内容包括:基本原则、布局、注释、命名规则、变量常量与类型、表达式与语句、函数与过程、可靠性、可测性、断言与错误处理等。

一、基本原则1. 保持代码的简明清晰,避免过分的编程技巧。

2. 所有的代码尽量遵循ANSI C标准。

3. 编程时首先达到正确性,其次考虑效率。

4. 避免或少用全局变量。

5. 尽量避免使用GOT(语句。

6. 尽可能重用、修正老的代码。

7. 尽量减少同样的错误出现的次数。

二、文件布局1. 头文件必须要避免重复包含。

2. 包含标准库头文件用尖括号< >,包含非标准库头文件用双引号3. 遵循统一的顺序书写类的定义及实现。

类的定义(在定义文件中)按如下顺序书写:公有属性公有函数保护属性保护函数私有属性私有函数类的实现(在实现文件中)按如下顺序书写:构造函数析构函数公有函数保护函数私有函数5. 定义指针类型的变量,*应放在变量前。

6. 源程序中关系较为紧密的代码应尽可能相邻。

iLe ngth = 10;iWidth = 5; // 矩形的长与宽关系较密切,放在一起。

StrCaption = Test ”;7. 禁止使用TAB键,必须使用空格进行缩进。

缩进为4个空格。

8. 程序的分界符‘ {'和‘ }'应独占一行并且位于同一列,同时与引用它们的语句左对齐。

{}之内的代码块使用缩进规则对齐。

9. if、else、else if 、for、while、do等语句自占一行,执行语句不得紧跟其后。

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

if (varible1 < varible2){varible1 = varible2;}10. 声明类的时候,public、protected 、private 关键字与分界符{}对齐,这些部分的内容要进行缩进。

11. 结构型的数组、多维的数组如果在定义时初始化,按照数组的矩阵结构分行书写。

12. 相关的赋值语句等号对齐。

13. 在switch语句中,每一个case分支和default要用{}括起来,{}中的内容需要缩进。

14. 不同逻辑程序块之间要使用空行分隔。

15. 一元操作符如“!”、“~”、“ ++”、“-- ”、“* ”、“&”(地址运算符)等前后不加空格。

“□”、“. ”、“-> ”这类操作符前后不加空格。

16. 多元运算符和它们的操作数之间至少需要一个空格。

17. 关键字之后要留空格。

(if、f or、while等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。

)18. 函数名之后不要留空格。

(函数名后紧跟左括号‘(’,以与关键字区别。

)19. ('向后紧跟,’)’、‘,'、‘;'向前紧跟,紧跟处不留空格。

‘,’之后要留空格。

‘;'不是行结束符号时其后要留空格。

20. 长表达式(超过80列)要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。

拆分出的新行要进行适当的缩进,使排版整齐。

21. 函数声明时,类型与名称不允许分行书写。

三、注释1. 一般情况下,源程序有效注释量必须在20%以上。

2. 注释符与注释内容之间要用一个空格进行分隔。

3.文件头部必须进行注释,包括: .h 文件、.c 文件、.cpp 文件、.inc 文件、.def 文件、编译说明文件.cfg 等。

4.函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、访问和修改的表、修改信息等。

5.包含在{ }中代码块的结束处应加注释,便于阅读。

特别是多分支、多重嵌套的条 件语句或循环语句。

void Main () {if (…) {while (…)} /* end of void main () */6. 保证代码和注释的一致性。

修改代码同时修改相应的注释,7.注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。

8. 全局变量要有详细的注释,包括对其功能、取值范围、访问信息及访问时注意事项 等的说明。

9.注释与所描述内容进行同样的缩排。

10. 对分支语句(条件分支、循环语句等)必须编写注释。

11. 尽量避免在注释中使用缩写,特别是不常用缩写。

四、命名规则} /* end of while ( …)*/ //指明该条while 语句结束} /* end of if (…)*/// 指明是哪条语句结束//指明函数的结束不再有用的注释要删除。

1. 标识符要采用英文单词或其组合,便于记忆和阅读,切忌使用汉语拼音来命名。

严格禁止使用连续的下划线,下划线也不能出现在标识符头或结尾(预编译开关除外)。

2. 程序中不要出现仅靠大小写区分的相似的标识符。

3. 用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。

4. 宏、常量名都要使用大写字母,用下划线‘ _'分割单词。

预编译开关的定义使用下划线’_'开始。

5. 变量名长度应小于31个字符,以保持与ANSI C标准一致。

不得取单个字符(如i、j、k 等)作为变量名,但是局部循环变量除外。

6. 程序中局部变量不要与全局变量重名。

7. 使用一致的前缀来区分变量的作用域。

g_ : 全局变量s_ : 模块内静态变量空:局部变量不加范围前缀8. 使用一致的小写类型指示符作为前缀来区分变量的类型。

说明:常用变量类型前缀列表如下:i intf floatd doublec charuc unsigned char 或BYTEl longp poi nterb BOOLh HANDLEw unsigned short 或WORDdw DWORD 或unsigned longa数组,array of TYPEstr字符串t结构类型9. 完整的变量名应由前缀+变量名主体组成,变量名的主体应当使用“名词”或者"形容词+名词”,且首字母必须大写。

float g_fValue;10. 函数名用大写字母开头的单词组合而成, 且应当使用“动词”或者“动词+名词”(动宾词组)11. 结构名、联合名、枚举名由前缀T_开头。

事件名由前缀EV_开头。

12. 标识符前最好不加项目、产品、部门的标识。

五、变量常量与类型1. 定义全局变量时必须仔细分析,明确其含义、作用、取值范围及与其它全局变量间的关系。

2. 明确全局变量与操作此全局变量的函数或过程的关系。

3. 一个变量有且只有一个功能,不能把一个变量用作多种用途。

4. 循环语句与判断语句中,不允许对其它变量进行计算与赋值。

5. 宏定义中如果包含表达式或变量,表达式和变量必须用小括号括起来。

6. 使用宏定义多行语句时,必须使用{ } 把这些语句括起来。

建议:尽量构造仅有一个模块或函数可以修改、创建的全局变量,而其余有关模块或函数只能访问。

对于全局变量通过统一的函数访问。

尽量使用con st说明常量数据,对于宏定义的常数,必须指出其类型。

最好不要在语句块内声明局部变量。

7. 结构和联合必须被类型化。

typedef struct{char acName[NAME_SIZE];WORD wScore;} T_Stude nt;T_Stude nt *ptStude nt;建议:使用严格形式定义的、可移植的数据类型,尽量不要使用与具体硬件或软件环境关系密切的变量。

结构是针对一种事务的抽象,功能要单一,不要设计面面俱到的数据结构。

不同结构间的关系要尽量简单,若两个结构间关系较复杂、密切,那么应合为一个结构。

结构中元素的个数应适中。

若结构中元素个数过多可考虑依据某种原则把元素组成不同的子结构,以减少原结构中元素的个数。

仔细设计结构中元素的布局与排列顺序,使结构容易理解、节省占用空间,减少引起误用现象,对于结构中未用的位明确地给予保留。

结构的设计要尽量考虑向前兼容和以后的版本升级,并为某些未来可能的应用保留余地(如预留一些空间等)。

合理地设计数据并使用自定义数据类型,尽量减少没有必要的数据类型默认转换与强制转换。

当声明数据结构时,必须考虑机器的字节顺序、使用的位域及字节对齐等问题。

六、表达式与语句1. 在表达式中使用括号,使表达式的运算顺序更清晰。

if (((iYear % 4 == 0) && (iYear % 100 != 0)) || (iYear % 400 == 0))2. 避免表达式中的附加功能,不要编写太复杂的复合表达式。

3. 不可将浮点变量用"==”或"!= ”与任何数字比较。

4. 应当将指针变量用"==”或"!= ”与NULL比较。

5. 在switch语句中,每一个case分支必须使用break结尾,最后一个分支必须是default 分支。

6. 不可在for循环体内修改循环变量,防止for循环失去控制。

建议:循环嵌套次数不大于3次。

do while 语句和while语句仅使用一个条件。

当switch语句的分支比较多时,采用数据驱动方式。

如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。

for语句的循环控制变量的取值采用“半开半闭区间”写法。

在进行“==”比较时,将常量或常数放在“==”号的左边。

七、参数void SetValue(int iWidth, int iHeight);float GetValue(void);2. 如果参数是指针,且仅作输入用,则应在类型前加con st。

(防止该指针在函数体内被意外修改。

)3. 当结构变量作为参数时,应传送结构的指针而不传送整个结构体,并且不得修改结构中的元素,用作输出时除外。

4. 不要省略返回值的类型,如果函数没有返回值,那么应声明为void类型。

5. 对于有返回值的函数,每一个分支都必须有返回值。

(为了保证对被调用函数返回值的判断,有返回值的函数中的每一个退出点都需要有返回值)6. 对输入参数的正确性和有效性进行检查。

7. 防止将函数的参数作为工作变量。

void SumData(int iNum, int *piData, int *piSum ){int iCount ;int iSumTmp; // 存储“和”的临时变量iSumTmp = 0;for (iCount = 0; iCount < iNum; iCount++){iSumTmp += piData[iCount];}*piSum = iSumTmp;}反例:void SumData(int iNum, int *piData, int *piSum ){int iCount;*piSum = 0;for (iCount = 0; iCount < iNum; iCount++ ){*piSum += piData[iCount]; // piSum 成了工作变量,不好。

相关文档
最新文档