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

一般来说,我们编制的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及断点设置等功能也可用于程序的调试中。

 

返回

 
C语言中,可以使用多个源文件来编写程序。为了将多个源文件组合成一个程序,可以使用以下几个步骤: 1. 创建头文件:将需要在多个源文件中共享的函数原型和常量定义等内容放在一个头文件中,并在每个源文件中包含这个头文件。 2. 创建源文件:将程序中不同的功能模块分别编写在不同的源文件中,并在需要使用这些功能的源文件中包含相应的头文件。 3. 编译源文件:使用编译器将每个源文件编译成目标文件。 4. 链接目标文件:使用链接器将所有目标文件链接成一个可执行文件。 下面是一个简单的示例程序,其中包含两个源文件和一个头文件: 头文件 mymath.h: ```c #ifndef MYMATH_H #define MYMATH_H int add(int a, int b); int sub(int a, int b); #endif ``` 源文件 mymath.c: ```c #include "mymath.h" int add(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; } ``` 源文件 main.c: ```c #include <stdio.h> #include "mymath.h" int main() { int a = 10, b = 5; printf("a + b = %d\n", add(a, b)); printf("a - b = %d\n", sub(a, b)); return 0; } ``` 编译和链接命令: ```bash gcc -c mymath.c gcc -c main.c gcc -o program mymath.o main.o ``` 其中,第一条命令将 mymath.c 编译成目标文件 mymath.o,第二条命令将 main.c 编译成目标文件 main.o,第三条命令将这两个目标文件链接成一个可执行文件 program。 以上就是将多个源文件组合成一个程序的基本步骤和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值