以下是一个简单的多文件编写程序的示例,包括函数和全局变量的定义、如何使用头文件、如何防止第一次include、分文件中全局变量如何相互引用,以及函数如何相互调用。 假设我们的程序有两个功能:计算圆的面积和周长。我们可以将这两个功能写成两个函数,分别放在两个不同的源文件中,然后在主程序中调用这两个函数。 首先,我们来定义一个头文件 circle.h,用于声明我们的函数和全局变量: - #ifndef CIRCLE_H // 防止重复 include
- #define CIRCLE_H
- // 声明全局变量
- extern double pi;
- // 声明计算面积的函数
- double area(double radius);
- // 声明计算周长的函数
复制代码接下来,我们来定义两个源文件:circle.c和main.c。 circle.c文件中定义了 area 和 circumference 两个函数,并且定义了全局变量 pi:
- #include "circle.h" // 包含头文件
- // 定义全局变量
- double pi = 3.1415926;
- // 定义计算面积的函数
- double area(double radius) {
- return pi * radius * radius;
- }
- // 定义计算周长的函数
- double circumference(double radius) {
- return 2 * pi * radius;
- }
复制代码main.c文件中调用了 area 和 circumference 两个函数:
- #include <stdio.h>
- #include "circle.h" // 包含头文件
- int main() {
- double radius = 5.0;
- printf("The area of the circle is %f\n", area(radius));
- printf("The circumference of the circle is %f\n", circumference(radius));
- return 0;
- }
复制代码最后,我们需要将这三个文件编译成一个可执行文件。假设我们使用 GCC 编译器,我们可以使用以下命令编译
- gcc -o main main.c circle.c
复制代码
其中,-o main表示将编译生成的可执行文件命名为 main。现在我们就可以运行 main 程序了,它将输出以下结果:
- The area of the circle is 78.539816
- The circumference of the circle is 31.415927
复制代码
总结一下,一个简单的多文件编写程序的步骤如下: - 创建头文件 xxx.h,在其中声明函数和全局变量。
- 创建源文件 xxx.c,在其中定义函数和全局变量。
- 在 xxx.c 文件中包含头文件 xxx.h。
- 在主程序中包含头文件 xxx.h,并调用函数。
- 编译所有源文件成一个可执行文件。
需要注意的是,在头文件中需要使用 #ifndef 和 #define 防止重复 include,否则会出现重复定义的错误。在多个源文件中使用同一个全局
|