校运动会项目管理C语言,C语言大型程序的项目管理与实现

当程序复杂时源代码会很长,如果把全部代码放在一个源文件里,写程序,修改、加工程序都会很不方便。程序文件很大时,装入编辑会遇到困难;在文件中找位置 也不方便;对程序做了一点修改,调试前必须对整个源文件重新编译;如果不慎把已经调试确认的正确部分改了,又会带来新的麻烦。在实践中人们体会到:应当把 大软件(程序)的代码分成一些部分,分别放在一组源程序文件中,分别进行开发、编译、调试,然后把它们组合起来,形成整个软件(程序)。C语言本身支持这 种开发方式。当我们写的程序较大时,上述问题就会反应出来,因此应当学习“大程序”的开发方法。

把一个程序分成几个源程序文件,显然这些源文件不是互相独立的。一个源文件里可能使用其他源文件定义的程序对象(外部变量、函数、类型等),这实际上在不 同源文件间形成了一种依赖关系。这样,一个源文件里某个程序对象的定义改动时,使用这些定义的源文件也可能要做相应修改。在生成可执行程序时,应该重新编 译改动过的源文件,而没改过的源文件就不必编译了。在连接生成可执行程序时,要把所有必要的模块装配在一起。这些管理工作可以由人自己做,但是很麻烦。 TURBO C集成开发环境的项目管理功能能帮助我们处理这些问题。利用这种功能,开发大程序的工作将更加方便。今天的各种程序开发环境都提供了类似的管理功能。

用C语言写大程序,应当把源程序分成若干个源文件。其中有:

(1)一个或几个自定义的头文件,通常用 .h 作为扩展名。头文件里一般放:

#include预处理命令,引用系统头文件和其他头文件;

用#define定义的公共常量和宏;

数据类型定义,结构、联合等的说明;

函数原型说明,外部变量的extern说明;等等。

(2)一个或几个程序源文件,通常用 .c 作为扩展名。这些文件中放:

对自定义头文件的使用(用#include命令);

源文件内部使用的常量和宏的定义(用#define命令);

外部变量的定义;

各函数的定义,包括main函数和其他函数。

不提倡在一个 .c 文件里用#include命令引入另一个 .c 文件的做法。这样往往导致不必要的重新编译,在调试程序查错时也容易引起混乱。应该通过头文件里的函数原型说明和外部变量的extern说明,建立起函 数、外部变量的定义(在某个源程序文件中)与它们的使用(可能在另一个源程序文件中)之间的联系,这是正确的做法。

使用TURBO C项目管理功能的方法是:

首先建立一个“项目文件”。本系统中项目文件用.PRJ作为扩展名。项目文件同样可以用编辑器建立,在这个文件中列出作为本项目组成部分的所有源程序文件 的完整名字(包括扩展名),每行列一个,头文件不必列入。源文件的次序没有关系,第一个源文件的名字将被作为最后生成的可执行程序的名字。

在启动集成开发环境后,首先装入项目文件。用 Project菜单第一个命令完成这个工作。在此之后,编程工作的对象就是这个项目。

装入和修改源文件的方式不变。在一个源文件初步完成后,可以用Alt-F9或菜单编译命令对它进行编译,做语法检查,生成目标模块。这时还可能产生由于缺少必要外部定义而出现的错误。发现这种问题,应当修改有关头文件。

在 各个源文件的分别初步编译调试后,用F9或菜单的Compile/Make项命令开发环境建立可执行程序。这时程序加工的工作对象是整个项目,如果系统发 现某些目标模块不是最新的(源程序修改过),就自动对它们重新编译,最后把目标模块连接起来,生成可执行程序。编译中若发现源文件有错,所有的错误都将列 在消息窗口,排错时系统能够对各个文件中的错误自动定位,如果被定位错误所在的文件不是当前文件,系统将自动装入相应的文件,并把亮条和光标放在正确位 置。在这个加工过程中,还可能发现模块之间的关联错误,如变量函数的名字使用和定义不一致,方式不正确,变量函数的extern说明与实际定义不一致,等 等。在Make过程中,系统利用源程序的时间信息,确定程序模块的前后时间关系,决定哪些模块需要重新编译,最后在连接时装入所有必需的模块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值