如何使用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文件来告诉编译器如何编译程序。