分享
 
 
 

如何将多个C语言模块组合成一个程序

王朝c/c++·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

C语言的基本组成单元是函数,各个函数之间可以相互引用。在学到静态函数有时又将为内部函数和外部函数,即分别用static和extern说明的函数时,有不少人感到很迷惑:“外部”和“内部”到底是怎么一回事呢?

一般来说,我们编制的C语言源程序都是放在一个扩展名为.C的文件中,这对一个较简单的程序是合适的,但对于大型项目就不合适了,其一,大项目往往由多人合作完成,大家都来操作同一个文件极易出错;其二,大文件的编译、调试都极为复杂;其三,假如两个程序中都要用到同一个自定义的函数,此函数须从一文件移动到另一文件中,这种移动轻易出错。为了解决这一矛盾,一个大的程序往往被分成几个部分,存放在不同的DOS文件各。各个部分可以分开编辑、编译,最后再把这几部分链接成一个完整的程序。

把一程序分成几部分是有一定规则的。一个函数就不能分开在两个文件中,也不能在两个文件中都对其定义一次,因此每个文件都是由完整的对函数式变量的定义式说明组成的。对于某一文件中的函数,它可以直接引用本文件中所定义的函数和外部变量。假如要想引用别的文件中定义的函数或变量,则应在引用之前用extern,对此变量或函数进行说明。假如一个函数或外部变量在定义时前面加有static说明,那么就只有本文件内的函数能够使用它。习惯上,在每个文件的最前面放上不在此文件中的函数及变量的说明,由于对函数和变量的说明可以多次重复进行,往往建立一个头文件,在其中放入所有外部变量和外部函数的说明并在每个说明前面加上extern,然后每个源文件的第一行都用include包含这个头文件。

对于每一个完整的源文件,都应该能够单独通过编译,以便迅速改正其中的编辑错误。Turbo c中,假如你选择了编译命令,它就编译当前编辑窗口中的文件。对于被调用函数,可以编出简单的调用函数对其可靠性进行测试,看它能不能完成预期的功能。

在每一个文件都编好并且都通过了编译之后,你需要建立一个项目文件,把所有的文件组合在一起进行链接。假如你使用的是Borland c++ 2.0以上的版本或MS C的高版本的话,可以看到其主菜单上有一个Project(项目)菜单,其中一项为建立Project文件,选此命令,输入项目文件名后即可直接从列出的目录中选定组成项目的文件。但在Turbo C 2.0中,这个过程要复杂一些,下面我们来看一个例子。

假设有一个程序,其中包含有main(),fun1(),fun2()三个函数及一个公用的外部变量int a:我们把main()及a的定义放在文件F1.C中,而将fun1(),及fun2()的定义放在文件F2.C中,即

F1.C

extern void fun1(int x);

extern void fun2(char c);

int a;

main()

{ fun1(5);

} fun2('A')

F2.C

extern int a;

void fun1(int x);

{…

a=a+x

}

void fun2(char c)

{…

}

先应把F1.C和F2.C分别输入计算机并编译后存盘。然后选File菜单下NEW命令,建立一个新的文件,即项目文件,不妨取名为MY.PRJ,其中只有两行:

F1.C

F2.C

必要时,还应在文件名前加上盘符和路径,存盘。然后打开Project菜单,选Project name.输入名字MY.PRT。这时Turbo.C就知道当前要链接,运行的是一个由两个文件组的程序。选择RUN菜单下的RUN命令即可对两个文件进行编译、链接和运行的一体化操作。F4,F7,F8及断点设置等功能也可用于程序的调试中。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有