如何使用C头文件将一个程序分成多个文件

143 阅读2分钟

如何使用C头文件将一个程序分成多个文件

简单的程序可以放在一个文件中,但当你的程序越来越大时,不可能只把它放在一个文件中。

你可以把程序的一部分移到一个单独的文件中,然后创建一个头文件

头文件看起来和普通的C语言文件一样,只是它的结尾是.h ,而不是.c ,而且它保存的不是函数的实现和程序的其他部分,而是声明

当你第一次使用printf() ,或其他I/O函数时,你已经使用了头文件,你必须输入。

来使用它。

#include 是一个预处理器指令。

预处理器会去查找标准库中的stdio.h 文件,因为你在它周围使用了括号。为了包括你自己的头文件,你将使用引号,像这样。

以上将在当前文件夹中查找myfile.h

你也可以为库使用文件夹结构。

#include "myfolder/myfile.h"

我们来做一个例子。这个程序计算自某一年以来的年份。

#include <stdio.h>

int calculateAge(int year) {
  const int CURRENT_YEAR = 2020;
  return CURRENT_YEAR - year;
}

int main(void) {
  printf("%u", calculateAge(1983));
}

假设我想把calculateAge 函数移到一个单独的文件中。

我创建一个calculate_age.c 文件。

int calculateAge(int year) {
  const int CURRENT_YEAR = 2020;
  return CURRENT_YEAR - year;
}

还有一个calculate_age.h 文件,我把函数原型放在那里,它与.c 文件中的函数相同,除了主体。

int calculateAge(int year);

现在在主.c 文件中,我们可以去掉calculateAge() 的函数定义,我们可以导入calculate_age.h ,这将使calculateAge() 函数可用。

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

int main(void) {
  printf("%u", calculateAge(1983));
}

不要忘记,要编译一个由多个文件组成的程序,你需要在命令行中列出所有文件,像这样。

gcc -o main main.c calculate_age.c

对于更复杂的设置,需要一个Makefile文件来告诉编译器如何编译程序。