0

十四、头文件

 2 years ago
source link: https://www.techstack.tech/post/%E5%8D%81%E5%9B%9B%E3%80%81%E5%A4%B4%E6%96%87%E4%BB%B6/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

十四、头文件

发表于2021-12-24|更新于2021-12-27|C语言入门手册
字数总计:578|阅读时长:2分钟|阅读量:4|评论数:0

简单的程序可以直接放在单个文件中。但是当你的程序变大,将它放在单个文件中就不可能了。

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

头文件看起来就像普通的 C 文件一样,但是它是以 .h 而不是 .c 结尾的。它里面的内容是 声明,而不是函数的实现和程序的其它部分。

你已经在第一次使用 printf() 函数或其它 I/O 函数的时候使用过头文件了,如果你要使用它,需要输入以下内容:

#include <stdio.h>

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

该预处理器会在标准库中寻找 stdio.h 文件,因为你使用了花括号包裹它。若要包含你自己的头文件,你需要使用引号("),就像这样:

#include "myfile.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));
}

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

我创建一个名为 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 是必需的。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK