C 教程

C 教程 C 语言简介 C 下载安装和环境配置 C 快速入门 C 语法 C 输出 C 注释 C 变量 C 数据类型 C 常量 C 运算符 C 布尔值 C If...Else 语句 C Switch 语句 C While 循环 C For 循环 C Break/Continue 语句 C 数组 C 字符串 C 用户输入 C 内存地址 C 指针

C 函数

C 函数 C 函数参数 C 作用域 C 函数声明 C 递归 C 数学函数

C 文件

C 创建文件 C 写入文件 C 读取文件

C 结构体

C 结构体 C 嵌套结构体 C 结构体和指针 C 联合体 C typedef

C 枚举

C 枚举

C 内存

C 内存管理

C 错误

C 错误 C 调试 C 空值 C 错误处理 C 输入验证

C 更多

C 日期 C 随机数 C 宏 C 代码组织 C 存储类 C 位运算符 C 固定宽度整数

C 项目

C 项目

C 参考资料

C 参考资料 C 关键词 C <stdio.h> C <stdlib.h> C <string.h> C <math.h> C <ctype.h> C <time.h>

C 标准库参考

C 标准库 - 参考手册 C 标准库 - <assert.h> C 标准库 - <ctype.h> C 标准库 - <errno.h> C 标准库 - <float.h> C 标准库 - <limits.h> C 标准库 - <locale.h> C 标准库 - <math.h> C 标准库 - <setjmp.h> C 标准库 - <signal.h> C 标准库 - <stdarg.h> C 标准库 - <stddef.h> C 标准库 - <stdio.h> C 标准库 - <stdlib.h> C 标准库 - <string.h> C 标准库 - <time.h>

C 实例

C 语言实例 C 经典100例 C 编译器 C 测验


C 组织代码

组织你的代码 - 模块化编程

在 C 语言编程中,模块化编程是指将你的代码拆分成更小、可重用的部分。

这使得你的代码更易于阅读、维护和调试。

组织 C 程序最常见的方法是使用单独的 .c 文件和 .h 头文件。

虽然对于小型入门程序来说,这种方法并非必需,但对于大型项目或希望保持代码整洁有序的经验丰富的程序员来说,它非常有用。


为什么要使用头文件?

  • 用于声明在其他文件中定义的函数
  • 用于在不同文件之间共享变量、常量或宏
  • 用于将代码组织成逻辑模块

提示: 头文件通常包含函数声明、宏和结构体定义。


示例:创建头文件

在本示例中,您将学习如何创建自己的头文件,并使用它来组织跨多个文件的代码。

让我们创建一个简单的计算器模块,它包含一个头文件和一个源文件。

1. calc.h

首先创建一个名为 calc.h 的头文件,用于声明函数:

calc.h 文件:

#ifndef CALC_H
#define CALC_H

int add(int x, int y);
int subtract(int x, int y);

#endif

示例详解

#ifndef、#define 和 #endif 行被称为 包含保护。

它们可以防止文件被错误地多次包含,从而避免编译时出现错误。

这是所有 C 头文件中常见的推荐做法。

该文件本身包含两个函数的声明:add() 和 subtract()。


编写函数定义

2. calc.c

接下来,请在 calc.c 文件中编写函数定义:

The calc.c file:


#include "calc.h"

int add(int x, int y) {
  return x + y;
}

int subtract(int x, int y) {
  return x - y;
}

此文件定义了在 calc.h 中声明的函数。


在 main.c 中使用模块

3. main.c

最后,在 main.c 中编写主程序,并包含头文件以使用计算器功能:

main.c 文件:


#include <stdio.h>
#include "calc.h"

int main() {
  printf("5 + 5 = %d
", add(5, 5));
  printf("6 - 4 = %d
", subtract(6, 4));
  return 0;
}

结果:

5 + 5 = 10
6 - 4 = 2

如何编译多个文件

当你的程序分布在多个文件中时,你需要将它们编译在一起。例如:

gcc main.c calc.c -o program

这条指令告诉编译器将 main.c 和 calc.c 编译成一个名为 program 的可执行文件。