现代社会的竞争,不再是个人间的竞争,而是一个团队与其他团队间的竞争。因此,这个竞争将显的更加激烈。因为,他的决定因素更多。大型项目的开发,团队协作更加重要,项目能否按照原计划实施,项目能否高效的开发,在一定程度上队友间默契的配合和合理的项目分工对其有重大的影响。合理的项目分工,项目组成员才能各司其职,整个项目才能有条不紊的进展。同时,在项目后期整合和调试的过程中才能起到事半功倍的效果(模块化测试)。在项目开发过程中往往按照功能划分模块,即模块化设计,这样不但出错了好纠错,如果在后期将独立的模块制作成动态链接库的话,同样还可以方便软件在后期的升级和维护。用C语言开发,常常将独立的模块设计成单独的文件以便使用和维护,本文将通过介绍多文件的方式来组织项目工程,进行模块化设计。
1、 设计原则
a) 在头文件中定义函数原型(或全局变量)
b) 在源文件中对函数进行实现
c) 在main(项目主任务文件)或其他文件中调用
d) 在调用文件中要么用include将定义函数(或全局变量)的*.h文件包含进来,要么通过extern对调用的函数(或全局变量)做显式说明,当然两者可同时存在,但不能同时不存在
2、 实例
//multifile.h
#ifndef _MULTIFILE_H_
#define _MULTIFILE_H_ 1
int global;
int add(int src1,int src2);
int sub(int src1,int src2);
#endif
//multifile.c
#include "multifile.h"
int global;
int add(int src1,int src2)
{
global++;
return (src1 + src2);
}
int sub(int src1,int src2)
{
global++;
return (src1 - src2);
}
//main.c
#include
#include "multifile.h"
//extern int global;
//extern int add(int src1,int src2);
//extern int sub(int src1,int src2);
int main()
{
int a = 15,b = 8;
printf("global:%d\n",global);
printf("add(a,b)%d\n",add(a,b));
printf("global:%d\n",global);
printf("sub(a,b):%d\n",sub(a,b));
printf("global:%d\n",global);
return 0;
}
3、 项目编译
a) gcc -Wall -c main.c //不链接,生成main.o文件
b) gcc -Wall -c multifile.c //不链接,生成multifile.o文件
c) gcc main.o multifile.o -o main //生成main文件
4、 运行结果
global:0
add(a,b)23
global:1
sub(a,b):7
global:2