业务监控及风险预警项目后台开发规范.._第1页
业务监控及风险预警项目后台开发规范.._第2页
业务监控及风险预警项目后台开发规范.._第3页
业务监控及风险预警项目后台开发规范.._第4页
业务监控及风险预警项目后台开发规范.._第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、业务监控及风险预警项目后台开发规范杨巍目录整体介绍C/C+开发规范MakefileLinux静态库和动态库DB2嵌入C源码目录后台程序总体逻辑框架目录整体介绍C+开发规范MakefileLinux静态库和动态库DB2嵌入C开发源码目录头文件规则1 每一个.c/.cpp文件应有一个同名的.h文件,用于声明需要对外公开的接口。规则2 .c/.cpp/.h文件禁止包含用不到的头文件。规则3 总是编写内部#include保护符(#define 保护)。#ifndef _TIMER_H_#define _TIMER_H_#end if /end of define _TIMER_H_规则4 禁止头文件中

2、定义变量。规则5 只能通过包含头文件方式使用其它.c/.cpp提供的接口,禁止在.c/.cpp中通过extern的方式使用外部函数接口、变量。函数原则1 一个函数完成一件功能。原则2 重复代码应该尽可能提炼成函数。原则3 尽量少用函数指针。规则1 对函数的错误返回码要全面处理。规则2 废弃代码要及时清除。规则3 函数不变参数使用const。规则4 内联函数小于10行。规则5 使用内联函数代替函数宏。替换#define MAX(x, y) (x) (y) ? (x) : (y)标识符规则1 项目组保持统一命名风格 char szSql1024;int nLen;double dCharge;ch

3、ar *pAddress;string strName;class CObject;struct TEmployee;规则2 全局变量应增加“g_”前缀。规则3 静态变量应增加“s_”前缀。规则4 对于数值或者字符串等常量的宏定义,采用全大写字母,单词之间加下划线方式命名。规则5 函数命名应以函数要执行的动作命名,一般采用动词或者动词加名词的结构。int GetCurrentDate();注释规则1 修改代码时,维护代码周边的所有注释,保证注释与代码的一致性。规则2 头文件头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、功能说明。规则3 注释应放在其代码上方相邻位置或右方,不可

4、放在下面。规则4 对于switch语句下的case语句,如果因为特殊情况需要处理完一个 case后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确注释。规则5 全局变量要有详细注释,包括功能、取值范围等。规则6 宏定义要有明确的注释。排版与风格规则1 程序块采用缩进风格编写,每级缩进4个空格。规则2 相对独立的程序块之间、变量说明之后必须加空格。规则3 一行只写一条语句。规则4 if、for、do、while、case、switch、default等语句独占一行。规则5 if、for、while等与后面的括号间应加空格,使关键字更为突出、明显。目录整体介绍C/C

5、+开发规范MakefileLinux静态库和动态库DB2嵌入C开发源码目录什么是Makefile?MakefileMakefile是整个工程的编译规则。一个工程中的源文件不计是整个工程的编译规则。一个工程中的源文件不计数,数,MakefileMakefile 定义了一系列的规则来指定每个文件的编译定义了一系列的规则来指定每个文件的编译规则,甚至更复杂的功能操作,因为规则,甚至更复杂的功能操作,因为MakefileMakefile就像一个就像一个ShellShell脚本一样,其中也可以执行操作系统的命令。脚本一样,其中也可以执行操作系统的命令。MakefileMakefile带来的好处就是带来的

6、好处就是“自动化编译自动化编译”,makemake命令执行,命令执行,整个工程完全自动编译,极大的提高了软件开发的效率。整个工程完全自动编译,极大的提高了软件开发的效率。编译过程#include int main(void)printf(“hello worldn”);return 0;Makefile示例one: one.o two.o three.o g+ -o one one.o two.o three.o one.o: one.cpp one.h g+ -c one.cpp two.o: two.c two.h g+ -c two.cpp three.o: three.cpp thre

7、e.h g+ -c three.cpp书写规则显式规则:targets : prerequisites command .隐晦规则:.cpp.o:$(CC) $(CCFLAGS) $(INCLUDE) -c $ -o $ 自动化变量$ 表示规则中的目标文件集。$%$% 表示规则中的目标成员名。$ 依赖目标中的第一个目标名字。$?$? 所有比目标新的依赖目标的集合。以空格分隔。$ $* * 这个变量表示目标模式中“%”及其之前的部分。文件查找头文件-I源文件VPATH库文件-LMakefile模板本项目请使用该模块修改本项目请使用该模块修改目录整体介绍C/C+开发规范MakefileLinux静

8、态库和动态库DB2嵌入C开发源码目录静态库创建#includevoid hello()printf(“hello worldn”);hello.cint main(void)hello();return 0;test.cgcc -c hello.car -cr libhello.a hello.ogcc -o test L. -lhello动态库创建(一)#includevoid hello()printf(“hello worldn”);hello.cint main(void)hello();return 0;test.cgcc fPIC shared o libhello.so hell

9、o.c gcc -o test L. -lhello隐式加载动态库创建(二)DL APIdlopen()dlsym()dlerror()dlclose()显式加载静态链接与动态链接ProgramXStatic libraries(*.a)ProgramXStatic libraries(*.a)ProgramXProgramXShared libraries(*.so)Static linkingDynamic linkingStatic linking at compile-timedynamic linking at run-time目录整体介绍C/C+开发规范MakefileLinux静

10、态库和动态库DB2嵌入C开发源码目录编译应用程序连接与断开连接:连接:EXEC SQL CONNECT TO sample;EXEC SQL CONNECT TO sample USER USING ;断开:断开:EXEC SQL CONNECT RESET;宿主变量声明EXEC INCLUDE SQLCA;EXEC SQL BEGIN DECLARE SECTION;double dSalary;char szName20;EXEC SQL END DECLARE SECTION;使用游标处理多行结果使用DECLARE CURSOR语句声明一个游标EXEC SQL DECLARE cur1

11、CURSOR FOR SELECT name, dept FROM STAFF WHERE job = :host_var;使用OPEN语句执行查询和创建结果表EXEC SQL OPEN cur1;使用FETCH语句每次提取一行结果EXEC SQL FETCH cur1 INTO :szName, :szDept;使用CLOSE语句关闭游标EXEC SQL CLOSE cur1;动态SQLstrcpy(szSql, “SELECT name, dept FROM STAFF WHERE job = ?”);准备准备SQL语句语句EXEC SQL PREPARE s1 FROM :szSql;使用使用DECLARE CURSOR语句声明一个游标语句声明一个游标EXEC SQL DECLARE cur1 CURSOR FOR s1;使用使用OPEN语句执行查询语句执行查询EXEC SQL OPEN cur1 USING :szParam;使用使用FETCH语句每次提取一行结果语句每次提取一行结果EXEC SQL FETCH cur1 INTO :szName, :szDept;使用使用CLOSE语句关闭游标语句关闭游标EXEC SQL CLOSE cur1;目录整体介绍C/C+开发规范MakefileLinux静态库和动态库DB2嵌入C开发源码目录项目源程序目录结构

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论