c语言文件拓展名是什么,.c和.h文件扩展名是什么意思?

.c:c文件(实际操作是在一般情况下)

.h:头文件(要包含在预处理器#include指令中)。包含通常被认为与代码的其他部分共享的东西,例如函数原型,#define’d东西,全局变量的extern声明(哦,恐怖)等。

从技术上讲,你可以把一切都放在一个文件中。整个C程序。百万行。但是我们人类倾向于组织事物。所以你创建不同的C文件,每个文件包含特定的功能。这一切都很好,干净。然后突然你意识到,一个声明,你有一个给定的C文件应该也存在于另一个C文件。所以你会复制它们。最好是提取声明并将其放入一个公共文件,即.h

例如,在cs50.h中,您会发现您的函数的“转发声明”。

前向声明是一种快速的方式告诉编译器应该如何调用函数(例如,什么输入参数)以及返回什么,所以它可以执行正确的检查(例如,如果你调用的参数数量错误的函数,会投诉)。

另一个例子。假设你写一个包含执行正则表达式匹配的函数的.c文件。您希望您的函数接受正则表达式,要匹配的字符串,以及一个用于指示比较是否不区分大小写的参数。

在.c你会因此放

bool matches(string regexp, string s, int flags) { the code }

现在,假设您要传递以下标志:

0:如果搜索区分大小写

1:如果搜索不区分大小写

你想保持自己对新标志开放,所以你没有放一个布尔值。

使用数字很难,所以你为这些标志定义有用的名称

#define MATCH_CASE_SENSITIVE 0

#define MATCH_CASE_INSENSITIVE 1

这个信息进入.h,因为如果任何程序想使用这些标签,它无法知道它们,除非你包括信息。当然你可以把它们放在.c中,但是你必须包括.c代码(整个!),这是一个浪费时间和麻烦的来源。