欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    编码规范C语言Word文档格式.docx

    • 资源ID:1360041       资源大小:22.51KB        全文页数:21页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    编码规范C语言Word文档格式.docx

    1、shortsLengthllonglOffsetp指针pAddrffloatfSpeedRateddoubledSpeedRateststructstParaInfoununionunWeekDayfp文件描述符fpTimestr字符串strVariable局部变量中可采用如下几个通用变量:nTemp,nResult,i,j(一般用于循环变量)。变量应为名词或名词短语。2.3常量命名和宏定义规范常量和宏定义必须具有一定的实际意义;常量和宏定义在#include 和函数定义之间;常量和宏定义必须全部以大写字母来撰写,中间可根据意义的连续性用下划线连接,每一条定义的右侧必须有一简单的注释,说明其作

    2、用。例如:#define REPO_PRICE 1000000/*回购价格*/2.4函数命名规范函数名用大写字母开头的单词组合而成,建议使用祈使动词或动词短语。voidImportantPoint(void);2.5 结构体类型命名规范结构体类型命名必须全部用大写字母,原则上前面以下划线开始;结构体变量命名必须用大小写字母组合。typedefstructcharstrProductName20;charstrAuthor20;charstrReleaseDate16;charstrVersion10; longlMaxTables;longlUsedTables;DBS_DATABASE;DB

    3、S_DATABASE stDataBase;2.6 目录名命名规范文件名必须由前缀和后缀组成,最好采用长文件命名格式。文件名必须用英文字母表达,禁止使用中文。对于几个单词组合表达的文件名,每个单词必须小写,单词之间用下划线“_”分割。data_vender3注释一般来说,注释的使用应按照以下原则:注释应该能够帮助读者理解代码的功能和作用,应该有助于读者理解程序的流程;注释要言简意赅;错误的注释还不如不做注释;重要的代码行或段落提示要加注释;边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除;注释使用/*/。以下将详细介绍注释的编写规范3.1 文件头部注释

    4、文件开始注释内容包括:公司名称、版权、作者名称、时间、模块用途、背景介绍、修订说明等,复杂的算法需要加上流程说明。文件开头的注释模板:/*版权所有 兴业银行*文件名:*版本:X.X 从0.1 开始*创建人:中文名*创建日期:YYYY-MM-DD*功能描述:*修订记录:*修订日期 修订人 修复的bug 或者修订原因*/3.2 函数头注释/*函数名:*输入:a,b,c*a-*b-*c-*输出:x-*x 为1,表示.*x 为0,表示.*全局变量:*调用模块:*作者:*日期:*版本:*/3.3 语句注释对语句的注释必须放在其上方或右方相邻位置,不要放在下面;在程序块的结束行右方最好加注释标记,以表明某

    5、程序块的结束;过长的函数实现,最好将其语句按实现的功能分段加以概括性说明;必须对不易理解的分支条件表达式加注释。3.4 常量、变量、宏的注释在常量、变量(临时变量除外)和宏的声明前必须对其作适当注释,注释说明的要点是:被保存值的含义(必须);合法取值的范围(可选);与其它数据,函数或模块的关系(可选)。4文件编写规范4.1 头文件构成包含以下内容:1) 头文件头部注释;2) 防止重复包含的宏:#ifndef_文件名_扩展名#define_文件名_扩展名3) 包含文件部分(系统头文件、项目头文件、本地头文件)(可选);4) 宏定义部分(可选);5) 类型定义部分(可选);6) 结构体定义部分(可

    6、选);7) 函数或类的声明部分;8) 防止重复包含的宏:#endif/*_文件名_扩展名*/。4.2 代码文件构成1) 源文件的头部注释;2) 包含文件部分(系统头文件、项目头文件、本地头文件)(可选);3) 宏定义部分(可选);4) 类型定义部分(可选);5) 结构体定义部分(可选);6) 函数定义部分。注:包含文件时禁止使用绝对路径。对于代码文件内部使用的函数,应在代码文件的前面进行声明,并要指定static 关键字。static void * ChoiceCommand(int);5 变量、常量使用规范禁止对浮点型变量进行相等比较;所有变量必须在使用前进行初始化;最好不使用全局变量;将全

    7、部变量的声明放在函数开始处;最好用声明的常量代替代码中的经常出现的数字。6 函数编写规范6.1 函数的划分良好的函数划分,必须能够自顶向下逐级抽象地展现设计思想,提高程序的易读性和自说明性;函数必须是按功能划分的,每个函数必须只做一件事情(高内聚准则);相关的一组函数之间的关联必须尽可能少(低耦合准则);在不破坏高内聚准则和低耦合准则前提下,一个函数代码长度最好不超过100 行。6.2 函数缩进必须以4 个空格键来表示一个缩进单位;在不影响展示程序结构的前提下最好尽可能地减少缩进的层次;使用如下缩进风格:(以if 为例)if(expression)statements/缩进四格else6.3

    8、代码行内的空格关键字之后要留空格。象const、case 等关键字之后至少要留一个空格,否则无法辨析关键字。象if、for、while 等关键字之后应留一个空格再跟左括号”(”,以突出关键字;函数名之后不要留空格,紧跟左括号”(”,以与关键字区别;“,”之后要留空格,如Function(x,y,z)。如果”;”不是一行的结束符号,其后要留空格,如for(initialization;condition;update);赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=”“=”、“=”、“+”、“*”、“%”、“&”、“|”、“”这类操作符前后不加空格;对于表达式比较长

    9、的for 语句和if 语句,为了紧凑起见可以适当地去掉一些空格,如for(i=0;i10;i+)和if(a=b)&(c0)i+在中的复合语句应该有层次;如下的情况可以不使用花括号,如语句块中包含null 语句,或者只有简单的一行。6.6.2 If 语句If(condition)statements;if(condition)6.6.3 for 语句for(initialization;update)6.6.4 while 语句while(condition)如使用无限循环,那么建议使用:while(true)6.6.5 do-while 语句dowhile(condition);6.6.6 s

    10、witch 语句switch(condition)case1:case2:break;default:6.7 函数返回值规范每个函数均有返回值,除非由接口定义的函数或者操作非常简单的函数。对于有不同状态的返回值,建议用int 型的返回值,0 为成功。对于出错类返回值,在同一层次的模块,用统一代码表示。在函数的注释中要对函数的返回值加以说明,要说明各种不同类型的返回值以及它们的含义。6.8 其他函数的输入参数和输出参数必须少于5 个,当参数过多时,可以考虑将参数定义为一个结构体,并且将结构体指针作为参数;对于超过3 句以上的语句反复调用,最好封装为函数调用;提供给外部使用的函数,禁止使用全局变量

    11、交换数据。7 异常和错误的处理对程序中出现各种异常与错误,如除0 错误、内存错误、数据库操作错误等都要捕获并记录日志。对于异常和错误的抛出,采用函数返回值的形式返回,发生错误的函数或错误捕获函数要保证已将错误登记到日志中。8 定义系统目录结构例(供参考):src|-系统目录名-build 目录-conf 目录-shell 目录-src 源码目录-main 目录-子模块1 目录.-子模块n 目录-public 目录-util 目录9 Makefile 文件模板1) Makefile 请以模板为基础编写;2) 在Makefile 中需统一指定setup 目标行(参照模板),以方便系统的自动构建和发

    12、布;3) 在每次功能完成后或构建、发布前请执行setup 目标,将目标文件(.o)发布到系统的构建/发布目录。#Module:env#Author:SongFang#Date:2005.9.8#-#forRedHat9&Oracle9.2#Oracleinclude&librarypathORAINCS=-I$ORACLE_HOME/precomp/syshdr-I$ORACLE_HOME/precomp/public-I$ORACLE_HOME/rdbms/public-I$ORACLE_HOME/plsql/public-I.-DLINUX-D_GNU_SOURCE-D_LARGEFILE

    13、64_SOURCE=1-D_LARGEFILE_SOURCE=1-DSLTS_ENABLE-DSLMXMX_ENABLE-D_REENTRANT-DNS_THREADSORALIBS=-L$ORACLE_HOME/lib-L$ORACLE_HOME/rdbms/lib#ProcincludepathsettingPIPATH=include=$ORACLE_HOME/precomp/publicinclude=$ORACLE_HOME/precomp/syshdr$ORACLE_HOME/rdbms/public$ORACLE_HOME/plsql/publicsys_include=/usr

    14、/include/usr/include/linux/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include#CCompilerinclude&librarypathsettingCIPATH=CLPATH=CFLAGS=$CC_CFLAGS$CIPATH$CLPATHPFLAGS=$PIPATHUSERID=$(PFLAG_USERID)sqlcheck=SEMANTICSfips=NOcode=KR_Cparse=FULLclose_on_commit=YEScpool=YESCC=$CC_COMPILER$CFLAGSPC=proc$PFLAGSL

    15、B=ar-rCP=cpRM=rm-f.SUFFIXES:.o.c.o.pc.obj.c.obj.pc.c.pc.c.o:$(CC)-o$(:.c=.o)-c$.pc.o:$(PC)$(CC)-c$(.pc=.c)$(RM)$(.pc=.c)*.lis.c.obj:$(CC)-c$.pc.obj:.pc.c:TARGET=env_buildAIM_PATH=$(DIST_AIM_PATH)SHARE_OBJS=NEW_OBJS=env.oall:build$(TARGET):$(NEW_OBJS)# $(CC)-o$SHARE_OBJS$(NEW_OBJS)test.cbuild:$(TARGE

    16、T)clear:$(RM)$(NEW_OBJS)setup:$(CP)$(NEW_OBJS)$(AIM_PATH)clean:$(RM)$(TARGET)$(NEW_OBJS)10 头文件模板*版权所有YYYY,开发部门名称command_controller.h0.1XXX*描述:命令请求控制器的头文件*修订日期修订人修复的bug 或者修订原因*-/*$Header:$*$Revision:*$Date:*/#ifndef_COMMAND_CONTROLLER_H#define_COMMAND_CONTROLLER_H#include *函数原型voidCommandController(i

    17、nt,structsockaddr*,int);/*命令请求控制器*/#endif/*_COMMAND_CONTROLLER_H*/11 代码文件模板command_controller.c YYYY-MM-DD命令请求控制器,完成命令报文转发处理*$Header$*$Revision$*$Date$#includecommand_controller.h*返回命令报文对应的命令处理函数staticvoid*ChoiceCommand(int);CommandControlleriConnectedSocket,pClientAddr,iClientLen*iConnectedSocket:连

    18、接端口号*pClientAddr:客户端信息*iClientLen:pClientAddr 的长度无命令请求控制器命令监听程序 0.1voidCommandController(intiConnectedSocket,structsockaddr*pClientAddr,intiClientLen)charstrBuf32;intiLen=0;intiPocketId=0;void(*commandProcess)(int)=NULL;Log(CommandControllerreceivedaconnectionfromclinet!n);while(1)bzero(strBuf,sizeof(strBuf);iLen=read(iConnectedSocket,strBuf,POCKET_ID_LENGTH);if(iLen=POCKET_ID_LENGTH)iPocketId=atoi(strBuf);if(commandProcess=ChoiceCommand(iPocketId)!=NULL)(*commandProcess)(iConnectedSocket);elseif(iLenCommandController无效报文,忽略!ChoiceCommandiPocketId*iPocketId:报文ID命令报文处理函数指针返回命令报文对应的处理函数*


    注意事项

    本文(编码规范C语言Word文档格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开