




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C 语言 编程规范说明书编程规范说明书 编写人:编写人: 编写日期:编写日期: 审批人:审批人: 审批日期:审批日期: 当前版本:当前版本: 文件编号:文件编号: 目录目录 第一章第一章 引言引言 .1 第一节 编写目的1 1.1.1 作用.1 1.1.2 预期读者.1 第二节 编写背景1 1.2.1 文件名称及版本号.1 1.2.2 任务提出者.1 1.2.3 任务承接者及实施者.1 1.2.4 使用者.1 1.2.5 与其它文件的关系.1 第二章第二章 UNIX 下下 C 程序编码规范程序编码规范 .2 第一节 程序的构成2 2.1.1 C程序要素2 2.1.2 C程序构成举例2 第二节 源文件的命名规则及构成3 2.2.1 文件扩展名.3 2.2.2 文件头的注释.4 2.2.3 源文件的构成.4 2.2.4 文件分类存放:.4 第三节 函数命名规则及构成4 2.3.1 函数命名:.4 2.3.2 函数头的注释.4 2.3.3 函数体的书写格式.5 2.3.4 函数返回.6 第四节 语句的书写格式6 2.4.1 SWITCH语句的书写格式.6 2.4.2 IF语句的书写格式.6 2.4.3 WHILE语句的书写格式.6 2.4.4 DO语句的书写格式.7 2.4.5 FOR语句的书写格式.7 2.4.6 函数的书写格式.7 第五节 常量变量及库表结构命名7 2.5.1 常量命名.7 2.5.2 变量命名.7 第六节 程序的变更格式8 2.6.1 程序的更改.8 2.6.2 程序版本的修改.9 第七节 其他格式9 2.7.1 条件编译语句的使用.9 2.7.2 有关内嵌SQL语句的规范9 第八节 函数例程10 第九节 MAKEFILE文件例程11 易联通(PowerLink3.0)编程规范说明书 V1.0 联想(北京)有限公司 第 1 页 第一章第一章 引言引言 第一节第一节 编写目的编写目的 1.1.11.1.1 作用作用 为使项目在软件开发过程中源代码的编写和管理规范化,使源代码可读性好、兼 容性好,易维护等,特制定如下规范,并要求全体开发人员遵循。编程规范书是根据 多个项目开发经验及部门其他项目编程规范书的基础上。它是编程阶段程序编写的指 导性文件。 1.1.21.1.2 预期读者预期读者 本文档的阅读对象是本项目软件开发人员、软件测试人员、软件维护人员,也供其他 项目编程参考。 第二节第二节 编写背景编写背景 1.2.11.2.1 文件名称及版本号文件名称及版本号 1.2.21.2.2 任务提出者任务提出者 综合前置平台总体设计组 1.2.31.2.3 任务承接者及实施者任务承接者及实施者 王华,徐戟 1.2.41.2.4 使用者使用者 预期读者,也供有关领导审阅 1.2.51.2.5 与其它文件的关系与其它文件的关系 作为总体设计中代码设计的附录文件 易联通(PowerLink3.0)编程规范说明书 V1.0 联想(北京)有限公司 第 2 页 第二章第二章 UNIX 下下 C 程序编码规范程序编码规范 本章定义 UNIX 下 C 语言编码的规范,鉴于 UNIX 是一组相似的操作系统的集合,本 节内容适用于 X86 上 SCO UNIX、RS6000 AIX、Linux 等操作系统下的 C 和 ESQL/C 编程。 第一节第一节 程序的构成程序的构成 2.1.12.1.1 C C 程序要素程序要素 C 语言程序是由各种说明和定义组成。具体地说,C 程序的要素包括 包含文件说明#include #include “” 常数定义#define . 宏定义#define . 类型说明typedef . 外部变量说明extern. 全局变量定义 外部函数引用说明 内部函数引用说明 函数描述 2.1.22.1.2 C C 程序构成举例程序构成举例 下面举例说明各种成分的结构和形式。 /* *包含文件说明 */ #include /* *常数定义 */ /* Error Code 定义 */ #define ERR_FILEIO(-1)/* file I/O error*/ #define ERR_SYS(-2)/* system service error */ #define ERR_MALLOC(-3)/* memory allocation error*/ #define ERR_PARAMETER(-4)/* parameter error*/ /* Status Code 定义 */ #define STS_IDLE1/* idle*/ #define STS_READY2/* ready*/ #define STS_RUN3/* running*/ #define STS_STOP4/* stop*/ /* 易联通(PowerLink3.0)编程规范说明书 V1.0 联想(北京)有限公司 第 3 页 *宏定义 */ #define ADD(x,y) (x)+(y) /* *类型定义 */ typedef integer long; struct abc int iA;/*.*/ int iB;/*.*/ int iC;/*.*/ ; /* *外部变量说明 */ extern integer g_Xyz;/*.*/ extern short g_Abc;/*.*/ /* *全局变量定义 */ int g_CommandData;/*. */ /* *函数引用说明 */ extern int WIN_GetLine(); extern int SomeFunc(); int MyFunc1(); int MyFunc2(); /* *函数描述 */ int MyFunc(int argc,char * argv) 第二节第二节 源文件的命名规则及构成源文件的命名规则及构成 2.2.12.2.1 文件扩展名文件扩展名 *.h 用于记载说明、定义的源文件 *.c用于记载 C 程序描述的源文件 *.ec 用于记载 C 程序和 Informix 数据库处理的源文件 易联通(PowerLink3.0)编程规范说明书 V1.0 联想(北京)有限公司 第 4 页 2.2.22.2.2 文件头的注释文件头的注释 /* *文件名:FileName *文件功能:Function *编程者:Xxxxx Mmmmmm *初作时间:Original Time *版本:1.0 * *时间修改者注释 *1998/09/29xxxx初期作成 *1998/10/04yyyy功能追加/修改 */ 2.2.32.2.3 源文件的构成源文件的构成 关联性很强的函数、变量应集中在同一源文件中描述。源文件中共同的定义和说明应 集中在一个头文件中描述。 一个源文件的大小一般应尽量控制在 2000 行以内。 2.2.42.2.4 文件分类存放:文件分类存放: 建议按如下目录存放文件: ($home)/src:存放系统程序源代码; ($home)/bin:存放系统可执行文件; ($home)/etc:存放系统配置文件; ($home)/log:存放系统运行记录文件; 第三节第三节 函数命名规则及构成函数命名规则及构成 2.3.12.3.1 函数命名:函数命名: 自编函数应当与系统函数、标准函数区分开来,以便读者从函数名上就可以区分出是 否为自编函数。建议给可分类的函数加前缀。 函数描述的每个单词首字母大写其余字母 小写,单词之间直接连接,不加下划线。 int PUB_PrintReset(void); /* 公共函数 */ int PRT_PrintLine(void); /* 打印函数 */ int PrintReset(void);/* 一般函数 */ 2.3.22.3.2 函数头的注释函数头的注释 函数头的注释里应包括:函数名、功能、作者、参数说明、完成日期和维护时间,维护 者, 维护简要说明。 调用的调用自定义函数、全局变量尽量写清楚,程序的处理流程比较复杂可在注释里 简单阐述。还可以有其他需要说明的栏目。 /* 易联通(PowerLink3.0)编程规范说明书 V1.0 联想(北京)有限公司 第 5 页 *函数名:Function Name *函数功能:Function Function *编程者:Xxxx Mmmm *输入参数:char * sDataStream - Datas Send to Printer *int iDataLen- Length of Send Datas *char cPrnDev - 0x01 Printer component; *- 0x02 Feature component; *char *sDevStatus- Device Status Read From Printer *输出参数: *返回值: *调用自定义函数:Call self-defined Function List *处理概要:Process * 全局变量:Extern Variable and Meaning *修改的全局变量:Update Extern Variable *完成时间:1998-04-17 *最后修改时间:1998-04-17 */ 2.3.32.3.3 函数体的书写格式函数体的书写格式 为了使程序具有良好的可读性,必须对语句的书写格式及空格、空行的应用进行了明 确的规定。 (1)每个函数不应太长,建议在 300 行以内; (2) “”和“”要分别占一行,并且对齐; (3)函数内,实现同一功能的语句与前后其他语句用空行分开,便于阅读; (4)不建议写长语句,以便程序的阅读和输出; (5)程序的相邻层次的语句之前的留空个数一般为一个 TAB 键,编辑器中一个 TAB 键 设置为四个空格。 (6)在程序行末的注释最好对齐; (7)注释必须以“/* . .*/”括起来,不可以用“/” ,主要目的是保证程序的可移植性; (8)程序里,表达式之间应用空格,以分隔清楚; (9)尽量不用难理解的语句。 (10) 如果一对中间的语句超过 20 行,结束的符号要求指出起始的位置。 (11) strcmp,memcmp 要用0 ,来表示相等。 int Test(int c_argc, char * c_argv ) int i;/* 变量说明 */ /* 本段程序说明 */ for (i=0; i0 包长度 * 调用自定义函数 : * 处理概要 : * 全局变量 : * 修改的全局变量 : * 完成时间 : 2002/02/02 * 最后修改时间 : 2002/02/02 */ int ConPoolToEucpRecvDefMsg(ptMessage c_stMessage,char * c_pMessageBuf ,int c_iMessageBufLen) 易联通(PowerLink3.0)编程规范说明书 V1.0 联想(北京)有限公司 第 11 页 int iTotalLen=0; int iSysHeadLen=0; char aczSysHead129; int iPubHeadLen=0; char aczPubHead129; int iRecvDataLen=0; char aczRecvData4097; memset(aczRecvData,0,sizeof(aczRecvData); iRecvDataLen=PutRecvData(aczRecvData,c_stMessage); if ( iRecvDataLen 0 ) return iRecvDataLen; iTotalLen=iTotalLen+iRecvDataLen; memset(aczPubHead,0,sizeof(aczPubHead); iPubHeadLen=PutRecvPubHead(aczPubHead); if ( iPubHeadLen 0 ) return iPubHeadLen; iTotalLen=iTotalLen+iPubHeadLen; memset(aczSysHead,0,sizeof(aczSysHead); iSysHeadLen=PutSysHead(aczSysHead,iTotalLen); if ( iSysHeadLen 0 ) return iSysHeadLen; iTotalLen=iTotalLen+iSysHeadLen; memcpy(c_pMessageBuf,aczSysHead,iSysHeadLen); memcpy(c_pMessageBuf+iSysHeadLen,aczPubHead,iPubHeadLen); memcpy(c_pMessageBuf+iSysHeadLen+iPubHeadLen, aczRecvData,iRecvDataLen); return iTotalLen; 第九节第九节 Makefile 文件例程文件例程 # 文件功能:PowerLink V3.0 编译文件 # 编辑者 :Wang Hua # 版本 :1.0 易联通(PowerLink3.0)编程规范说明书 V1.0 联想(北京)有限公司 第 12 页 # 初作时间:1999/01/27 # 最后修改时间:1999/01/27 BIN= $(HOME)/bin/ #DEBUG=-D DEBUG DEBUG= all: $(BIN)hostauth $(BIN)plath # - 公共函数 - # plcommon.ec公共函数 # plcommon.h公共函数头文件 plcommon.o: plcommon.ec plcommon.h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年人造肉行业当前发展现状及增长策略研究报告
- 2025年智慧停车行业当前市场规模及未来五到十年发展趋势报告
- 2025年医学专业“医学护理”职业技能资格知识考试题与答案
- 播出网安全知识培训课件
- 2024年特种作业(设备安装施工员专业技术及管理实务)知识试题与答案
- 2025年社会工作者之初级社会综合能力考试题库
- 2025年重庆公务员事业单位考试事业单位考试公共基础知识预测冲刺试题库(含答案)
- 2024年保险销售员从业资格及基础知识资质综合竞赛试题库(附含答案)
- 2024年危货司机资格证考试题与答案
- 2025年职业资格-中级茶艺师模拟考试题库试卷(含答案)
- 2025至2030年中国水利工程勘察设计行业市场全景评估及发展趋向研判报告
- 2025年供应链金融与风险控制考试试题及答案
- 石油产品 燃料(F类)分类 第2部分:船用燃料油品种 编制说明
- 2024中级经济师《工商管理》真题和答案
- 2024年1月高考真题浙江卷英语试题(真题+答案)
- T/CCMA 0147-2023异型吊篮安装、使用和拆卸安全技术规程
- 电缆沟电缆管电缆井专项施工方案方针
- DB31/T 375-2022柑橘栽培技术规范
- GB/T 6730.90-2025铁矿石金、银、铂、钯含量的测定电感耦合等离子体质谱法
- (完整版)220kV线路工程架线施工方案
- 肿瘤标志物介绍课件图片
评论
0/150
提交评论