找回密码
 立即注册
搜索
热搜: 中医 针灸 咳嗽
查看: 254|回复: 0

C语言多文件编写案列

[复制链接]

3706

主题

1

回帖

1万

积分

管理员

积分
11870
发表于 2023-2-28 08:03:03 | 显示全部楼层 |阅读模式
以下是一个简单的多文件编写程序的示例,包括函数和全局变量的定义、如何使用头文件、如何防止第一次include、分文件中全局变量如何相互引用,以及函数如何相互调用。
假设我们的程序有两个功能:计算圆的面积和周长。我们可以将这两个功能写成两个函数,分别放在两个不同的源文件中,然后在主程序中调用这两个函数。
首先,我们来定义一个头文件 circle.h,用于声明我们的函数和全局变量:
  1. #ifndef CIRCLE_H // 防止重复 include
  2. #define CIRCLE_H

  3. // 声明全局变量
  4. extern double pi;

  5. // 声明计算面积的函数
  6. double area(double radius);

  7. // 声明计算周长的函数

复制代码
接下来,我们来定义两个源文件:circle.c和main.c。
circle.c文件中定义了 area 和 circumference 两个函数,并且定义了全局变量 pi:

  1. #include "circle.h" // 包含头文件

  2. // 定义全局变量
  3. double pi = 3.1415926;

  4. // 定义计算面积的函数
  5. double area(double radius) {
  6.     return pi * radius * radius;
  7. }

  8. // 定义计算周长的函数
  9. double circumference(double radius) {
  10.     return 2 * pi * radius;
  11. }
复制代码
main.c文件中调用了 area 和 circumference 两个函数:
  1. #include <stdio.h>
  2. #include "circle.h" // 包含头文件

  3. int main() {
  4.     double radius = 5.0;
  5.     printf("The area of the circle is %f\n", area(radius));
  6.     printf("The circumference of the circle is %f\n", circumference(radius));
  7.     return 0;
  8. }
复制代码
最后,我们需要将这三个文件编译成一个可执行文件。假设我们使用 GCC 编译器,我们可以使用以下命令编译
  1. gcc -o main main.c circle.c
复制代码

其中,-o main表示将编译生成的可执行文件命名为 main。现在我们就可以运行 main 程序了,它将输出以下结果:

  1. The area of the circle is 78.539816
  2. The circumference of the circle is 31.415927
复制代码

总结一下,一个简单的多文件编写程序的步骤如下:
  • 创建头文件 xxx.h,在其中声明函数和全局变量。
  • 创建源文件 xxx.c,在其中定义函数和全局变量。
  • 在 xxx.c 文件中包含头文件 xxx.h。
  • 在主程序中包含头文件 xxx.h,并调用函数。
  • 编译所有源文件成一个可执行文件。
需要注意的是,在头文件中需要使用 #ifndef 和 #define 防止重复 include,否则会出现重复定义的错误。在多个源文件中使用同一个全局


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|私人站点 ( 冀ICP备2023028127号-2 )

GMT+8, 2025-4-19 12:12 , Processed in 0.089707 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表