0C语言基础学习第十二章:头文件

 2024-03-20 00:22:21  阅读 0

C语言头文件

头文件是扩展名为.h 的文件。 它包含C函数声明和宏定义,并被多个源文件引用和共享。 头文件有两种类型:程序员编写的头文件和编译器提供的头文件。

要在程序中使用头文件,需要使用 C 预处理器指令 # 来引用它。 之前我们已经见过stdio.h头文件,它是编译器自带的头文件。

引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这样很容易出错,尤其是当程序由多个源文件组成时。

A 在C或C++程序中,建议将所有常量、宏、系统全局变量和函数原型都写在头文件中,并在需要时随时引用这些头文件。

引用头文件的语法

可以使用预处理器指令 # 引用用户和系统头文件。 它有两种形式:

#

这种形式用于引用系统头文件。 它在系统目录的标准列表中搜索名为 file 的文件。 编译源代码时,您可以使用 -I 选项将目录添加到列表中。

# “文件”

该形式用于引用用户头文件。 它在包含当前文件的目录中搜索名为 file 的文件。 编译源代码时,您可以使用 -I 选项将目录添加到列表中。

引用头文件

# 指令指示 C 预处理器浏览指定文件作为输入。 预处理器的输出包括生成的输出、引用文件生成的输出以及#指令后的文本输出。 例如,如果您有一个如下所示的头文件 .h:

字符*测试(无效);

还有一个使用头文件的主程序.c,如下:

整数x;

# “。H”

int 主函数(无效)

投入(测试());

编译器会看到如下代码信息:

整数x;

字符*测试(无效);

int main(空)

投入(测试());

只引用一次头文件

如果一个头文件被引用两次,编译器就会对该头文件的内容进行两次处理,从而产生错误。 为了防止这种情况,标准做法是将文件的全部内容放入条件编译语句中,如下所示:

#

#

文件 文件

#万一

该结构通常称为包装#。 当再次引用头文件时,条件为 false,因为它已定义。 此时,预处理器会跳过文件的全部内容,编译器也会忽略它。

条件参考

有时需要选择几个不同的头文件之一来引用到程序中。 例如,您需要指定在不同操作系统上使用的配置参数。 您可以通过一系列条件来实现这一点,如下所示:

#如果

# “。H”

#elif

# “。H”

#elif

...

#万一

但如果头文件很多的话,这样做就很不合适了。 预处理器使用宏来定义头文件的名称。 这称为条件引用。 您只需使用宏名称即可,而不是使用头文件的名称作为 # 的直接参数:

# “。H”

...

#

将扩展并且预处理器将按照最初编写的方式查找 .h。 您可以通过 -D 选项定义。

C预处理器

C演员表

当有多个.h文件和多个.c文件时,我们经常使用一个.h头文件来包含所有.h文件,然后将.h包含在除.h文件之外的头文件中。 实现所有头文件的包含而不混乱。 在每个文件中调用其他文件的函数或变量很方便。

#

#

#

#

#

#

C语言中“”和“”有什么区别?

#<>指的是编译器的类库路径中的头文件。

# “ ”指的是你的程序目录相对路径中的头文件。 如果在程序目录中没有找到所引用的头文件,则在编译器的类库路径目录中查找该头文件。

标签: 文件 引用 目录

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码