资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
总账系统编程规范(项目组编程规范)总体目标本文档制定的软件编码规范希望能达到以下目标:l 易于移植l 风格一致l 易于理解l 易于维护l 代码简洁l 编程容易项目组成员个人编码风格的发挥在不违反以上目标的前提下进行。本规范主要针对商业银行综合业务系统C编码编写。本文档描述的编码规范由以下内容组成: 文件目录 文件命名 函数命名 变量命名 常量命名 文件首部 函数首部 函数定义 代码缩进 空间分隔 注释 代码排版风格文件目录源文件根据系统的划分来存放,同一个子系统的源文件放在相同目录下,公用的文件放在公用目录下。程序中关于对数据库的操作通过特定的函数进行,不允许出现SQL语句(注意:对于数据库操作的函数都放在一个单独目录下面,每个数据库表都有一个.ec程序,里面包含了所有有关该表的操作)。系统源文件目录主要划分成如下几部分:l 源文件总目录(src)l 一级目录:1 系统初始化文件;(init)系统启动过程中使用的文件2 系统主函数;(main)系统通讯main程序3 Shell文件;(sh)系统本身编写的shell文件4 头文件目录;(incl_c)子目录,保存.h文件,c声明方式5 头文件目录;(incl_ec)子目录,保存.h文件,ec声明方式6 公共头文件;(incl_pub) 公用头文件、结构、变量、宏定义等7 后台交易目录;(tx) 子目录,子交易文件(文件对应交易码)8 公共函数文件;(pubf) 子目录,所有程序公用函数的文件9 公共lib库文件;(liba) 外部.a文件10 数据过渡目录;(tranf) 旧帐过渡源程序文件l 二级目录: 1 后台交易目录:(tx)会计业务子系统;(acct)日终报表子系统;(rpt)日终处理程序;(eod)日终处理程序(报表除外)2 主机管理目录:(host)(待定)3 公共函数文件目录:(pubf)会计业务;(acct)报表业务;(rept)公共基础函数目录:(base)公共数据库操作目录:(pubdb)通讯基础函数目录:(comm)通讯基础函数目录:(bal)系统初始化函数目录:(init)日终函数目录:(eod)注意:在pubf目录的子目录下都有一个.h文件,用来声明该子目录下的所有函数。文件命名文件名都用小写字母形式,便于阅读。除了对数据库操作的文件为“.ec”程序之外,其他的所有程序都是“.c”程序。头文件为“.h”形式。l 头文件命名以“表名.h”命名,表名用小写单词。表名可以区分开存款、贷款、考核、柜员、凭证等项目。例如:现金台帐表(cash_mst),其头文件为 cash_mst.hl 交易文件的命名每个交易文件都对应一个交易码。文件名:“sp_交易码.c”使用sp_*?(service provider)命名,其中*表示交易代码,?表示序号l 公共函数文件命名英文单词缩写形式,多个单词之间用“_”连接。其缩写规则参考规范1209文件名:子目录_英文单词缩写.c例如:pub_cif_get_cif.c 表示该文件是公共函数库目录下客户中心文件目录的文件。l 其他文件名采用英文单词缩写形式。多个单词之间用下划线“_”连接。代码结构一个源文件中的代码构成一个代码模块。一个文件中的代码形成一个功能相对独立或属于某一共同特征的模块,属于不同功能组成的代码要求按不同文件存放。本编码规范要求每个源文件包含:文件首部、头文件、类型定义、全局变量定义、外部变量定义、函数声明(用来声明返回为空类型的函数)等。各组成部分用空行分隔,其中有些部分可能缺省,属于同一范畴的代码元素必须在一起集中定义说明。 功能与特征描述:比较详细地说明本模块代码的功能与特征。 头文件说明区:头文件说明区以注释行/* 头文件*/开头,然后是一行或多行C预处理器#include 指令。头文件说明区把模块中所有的头文件集中在一起进行说明。对系统和公有头文件的包含,要求使用#include 形式;对私有头文件的包含要求使用#include “dd_mst.h”形式。 宏定义区:宏定义区以注释行/* 宏定义 */开头,然后是一行或多行C预处理器#define和#undef指令(可能有条件编译指令进行控制),用以定义本代码模块使用的常数和宏定义。 类型定义区:类型定义区以注释行/* 类型定义 */开头,然后是一行或多行类型定义语句。类型定义区给出本文件使用的结构等新类型的声明。 全局变量定义区:全局变量定义以注释行/* 全局变量 */开头,然后是一行或多行全局变量定义。要求在同一行结尾处对定义变量的功能进行说明。 外部说明区:外部说明区以注释行/* 外部声明 */开头,然后是一行或多行外部变量或函数引用声明。要求先作外部变量声明,再作外部函数声明。 函数说明区:函数说明区/* 函数声明 */开头,然后是一行或多行本地定义函数声明。使用函数声明可以避免编译程序对未声明的并且定义在引用之后的函数给出警告信息。如:/* *文件首部 */ /* 头文件 */ #include #include dd_mst.h/* 宏定义 */#define MAX_FOOS 112 /* max # of foo entries */#define MIN_FATS 2 /* min # of FAT copies */* 类型定义 */typedef struct fooMsg VOIDFUNCPTR func; /* pointer to function to invoke */ int argFOO_MAX_ARGS; /* args for function */ FOO_MSG; /* 全局变量 */char *pGlobalFoo; /* global foo table */ static int numFoosLost; /* count of foos lost */ /*外部变量/函数声明*/extern int foo(int, int);extern int bar;/* 函数声明 */static int fooMat (list * aList, int fooBar, BOOL doFoo); FOO_MSG fooNext (void); 函数名定义函数:返回类型 函数名(参数1,参数2,);注意事项:l 名字应该能从字面大体了解其含义,函数名用小写字母表示;l 名字可以由多个单词组成,使用下划线符号_连接个单词。l 公共函数命名:pub_子目录_英文单词;l 局部函数命名:英文单词缩写;英文单词应该尽量使用本系统数据库部分已经约定好的缩写形式,常见的单词缩写形式见规范1209例如:Int pub_cif_get_cif_id(参数1,参数2,)表示该函数定义在公共函数部分(pubf)中客户中心子目录(cif)下的函数。Int get_ac_no( );表示局部函数。变量名变量名可以采用单词缩写下划线“_”形式,如:user_name,也可以采用单词首字母大写形式,如:UserName。尽可能在定义变量的同时初始化该变量(就近原则)。l 全局变量:全局变量定义以注释行/* globals */开头,然后是一行或多行全局变量定义。要求在每一个变量定义结尾处对变量的功能以注释形式进行说明。变量名以“g_”开头。大范围使用的变量,如全局变量,应使用长的名字,避免重复。如:/* 全局变量 */Char g_name50; /* 户名 返回给前台*/或者Char gName50; /* 户名 返回给前台*/l 局部变量:局部变量除了表示循环变量(如for(i=0;i10;i+)以外,其他地方禁止使用单个字母(如i,j,k,)。局部变量命名采用单词缩写形式,如果多个单词缩写,可以用下划线“_”连接。建议局部变量名采用:变量类型缩写(小写)_英文单词缩写或者变量类型缩写(小写)+英文单词(第一个字母大写)形式,这样可以避免和全局变量相同。英文单词如果为多个单词,可以用下划线“_”连接,或者每个单词首字母大写。如:char c_name50;或者 char cName50;目前变量类型缩写参考如下:c Char 字符u Unsigned int 无符号整数s char 字串p Pointer 指针si smallint 短整数l Long 长整数i Integer 整数dt date 日期tm time 时间db double 双精度浮点f float 单精度浮点d decimal 常量名/宏定义常量一律用大写单词表示,并给出注释,说明其用途。如果多个单词联合使用,中间用下划线“_”连接。如:#define ACC_HRT “21101” /* 科目控制字 */文件首部文件首部给出本文件代码的一般性描述信息,包括文件名、功能描述、作者、编写时间、以及修改记录,修改应以修改时间逆序排列,最后修改的放在最前面。本规范要求每一个源文件在开始位置包含一个文件首部,下面给出一个文件首部实例。/*
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号