1 / 27
文档名称:

软件编码规范.doc

格式:doc   大小:409KB   页数:27页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件编码规范.doc

上传人:xinsheng2008 2018/7/14 文件大小:409 KB

下载得到文件列表

软件编码规范.doc

文档介绍

文档介绍:浙江浙大网新众合轨道交通工程有限公司
软件编码规范
浙江浙大网新众合轨道交通工程有限公司
系统研发部
编制
审核
批准
日期
方辉
刘湘黔
文件编号
ZHGD-XT-002-0
版本号/修改号
A/0
本文件版权属于本公司所有,未经许可,不得复制引用
文档管理信息
保密级别
普通(√) 机密( ) 绝密( )
保存期限
短期( ) 长期(√) 永久( )
文件名称
软件编码规范
文件编号
ZHGD-XT-002-0
版本号
A/0
文档修改记录
版本
日期
修改内容
修改人
A/0
2009-10-10
新建文件
方辉
目录
1 目的 1
2 范围 1
3 编码规则 1
4 编码风格 7
排版规则 7
命名规则 8
注释规则 14
函数定义 21
变量间的间隔 22
禁止编码中常量出现 22
代码行 23
警告 23
目的
没有什么软件工程方法学可以保证可靠性代码,但是,遵循正确的编码规则可以显著的减少代码中的错误。
鉴于目前实施高可靠性软件开发的现状,我们制定本规范的目的是为了帮助软件开发人员更加深入地理解编码规则,从而辅助大家更好的推动软件编码规则在实际工作中的制定和实施,为了保证所每个项目组编写出的程序都符合相同的规范,便于理解和维护,便于检查、减少出错概率,有助于成员间交流,保证一致性、统一性。
本文所定义的规则部分来源于MISRA C-2004,并结合本部门开发与工程实践经验进行了选择。
范围
该规范适用于本公司所有基于C语言开发的安全苛求系统项目。
编码规则
在程序设计中应该遵守以下规则:
过程名不能被重用
标号名不能被重用
源代码应该使用/*…*/ 类型的注释
字符序列/* 不应出现在注释中
文件中可执行格式化代码行超过1500行
一个函数的行数应该控制在50行以内,每一行的长度应该控制80个字以内
不能声明函数指针
else语句不能为空
循环体要用大括号括起来
在非赋值表达式中不能出现了赋值操作符
else中的语句要用大括号括起来
不能使用goto语句
内嵌中不能使用汇编代码
过程参数不超过12个
参数不能使用未声明类型
实参与形参个数要匹配
函数不能未被调用
case语句不能为空
不能使用无限循环
使用++或者--操作符(一行中不能用多个)
不能使用三重表达式
圈复杂度不能大于10
不能有未使用的函数参数
函数的实参不能是全局变量
代码中有不能有多余变量
不能存在UR(变量未赋初值就引用)数据流异常
不能存在DU(定义后未引用就退出作用域)数据流异常(建议)
不能存在DD(定义后未被引用就被再定义)数据流异常(建议)
不能在函数中全局变量使用与局部变量作用类似
不能存在未被使用的过程参数
函数不能有多入口
过程参数不能只有类型没有标识符
使用恰当的循环变量类型
循环变量必须是局部的
不能在函数参数表中使用省略号
不能使用setjmp/longjmp
不能使用禁用的过程,函数,文件或名称
不要在重新定义C++关键字
数组使用不要越界
在switch语句中不能没有default 语句
switch语句中的case语句一定要由break语句来终止
不能对有符号类型进行移位操作
移位运算不能溢出
禁止给无符号变量赋负值
不使用逗号操作符
禁止对实数类型的变量做相等比较操作
不使用不起作用的语句
禁止switch语句为空
switch语句中不能只包含default
过程/函数的参数表不能为空
返回类型为void的的过程不能出现在表达式中
void类型的变量不能作为参数进行传递
指针不能指向比分配更大的范围
无符号的位域不能少于2个比特位的空间
在头文件前不能有可执行代码
宏中不能使用了多个#和##
宏定义中不能包含有不允许的项
指针的指针不能超过两级
不能使用三字母词
不要使用宽串文字
不要使用八进制数
不要使用寄存器变量
枚举元素的初始化要完整
字符类型要标明是有符号还是无符号
不能对变量重命名
不能在枚举中重复使用一个名字
给变量赋的值与其类型要一致
实参和形参类型要一致
头文件名不能使用“‘”、“\”和“\*”等字符
函数返回类型要一致
函数和函数的原型的返回要一致
函数和函数的原型的形参要一致
结构体变量的初始化类型要一致
结构体变量初始化的嵌套结构要一致
标识符不能超出31字符
过程在定义前不能被调用
变量在使用前要被声明
函数没有定义原型
一个文件的变量应该被声明为静态的