版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030民办学校资产轻量化运营与品牌输出研究
- 2025-2030民办学校社会责任履行与公共关系管理研究报告
- 2025-2030民办学校招生策略与生源结构优化研究
- 2025-2030民办书法美术教育行业市场规模及运营模式分析报告
- 2025-2030民办中小学校课程特色与核心竞争力构建研究
- 2025-2030民办中小学招生策略与生源结构优化研究
- 2025-2030民办中小学品牌化运营与区域扩张战略分析报告
- 2025-2030民办STEAM教育行业市场调研及增长驱动因素研究报告
- 2025-2030母婴跨境电商选品策略与海外仓布局成本效益对比分析
- 2025-2030母婴社交平台行业市场现状与投资价值分析报告
- 2025年体育专业初级教练考试真题附答案
- 2025年中国RS232,RS485,RS422多协议收发器行业市场全景分析及前景机遇研判报告
- 2025年1月浙江省高考化学试卷真题(含答案及解析)
- 电气火灾安全培训内容课件
- 设备预测性维护风险评估方案
- 四级手术术前多学科讨论优化
- 中国资源循环集团招聘笔试题库2025
- 医疗器械销售、验收、售后服务人员培训试题(含答案)
- 解读:与自己握手言欢(南充)-2025中考作文题+写作指导+例文展示+点评
- 西班牙永久工作合同范本
- 2024人教精通版四年级英语上册全册教学设计
评论
0/150
提交评论