0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言头文件是做什么的

Wildesbeast 来源:今日头条 作者:趣味c语言 2020-02-13 15:29 次阅读

今天我们来聊聊C语言中的头文件。

c语言程序代码文件扩展名只能是.c或者.h,换句话说,c语言程序代码只能在扩展名为.c或者.h的文件中编写。我们把.h文件称为头文件。头文件可以在.c文件中引用,也可以在.h文件中引用。

头文件是做什么用的呢?我们来看一段程序代码。

左边是源代码,右边是执行结果。这段代码的功能是打印出字符串“Hello, World!”。

我们能看到,源代码文件第一行是"#include ",也就是引用了头文件stdio.h。现在我们把这一行去掉,再执行一下看看结果。

注:c语言中行前加双斜线“//”代表注释掉这一行,也就是去掉这一行代码。

这时我们发现执行后右边的结果栏出现了报错,为什么呢?这是因为打印语句是printf函数输出的,而printf函数是在头文件stdio.h中声明的,把引用stdio.h这一行去掉,代码在编译时就找不到printf这个函数,所以就报错了。

有的朋友问,我们不引用头文件,把printf函数放在.c文件里可以吗?当然可以。但是printf属于通用函数,几乎每个.c文件都会用到,像这样使用频率极高的函数有很多,甚至有几百个,一个项目里的.c文件也有很多,每个.c文件里放几百个函数声明,是不是很难看?况且我们只想直接调用这些函数,根本不关心这些函数长什么样子,又何必把它罗列在我们的.c文件中?

c语言为我们实现了许多通用的函数,比如拷贝函数、比较函数等等,放在一个通用的函数库中供我们直接使用,而这些函数的声明就放在一些标准的头文件中,stdio.h就是标准头文件之一,我们只要引用这些头文件,就可以直接调用头文件中声明的函数,而无需自己去实现这些函数了。当然,除了可以引用标准头文件,我们也可以根据实际需求,自己创建和编写头文件。

那么头文件的内容只能是函数声明吗?当然不是。除了函数声明,变量定义、结构定义、宏定义都可以放在头文件中,如果你觉得你写的某个函数使用率很高,也可以把它放在头文件中。总而言之,通用的东西都可以放在头文件中。

头文件的引用可以写成“#include ",也可以写成"#include "stdio.h" ", 像下图一样。

头文件用尖括号括起来和用引号括起来意义是不同的,前者意思是让编译器直接去c函数库里或者用户配置的路径去查找,而不会在当前目录去查找。后者意思是让编译器先在当前目录去找,如果当前目录找不到,再去c函数库里或者用户配置的路径去查找。这里所说的当前目录,大家可以理解为引用头文件的文件所在的目录。

好了,今天就跟大家分享到这里。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7522

    浏览量

    127433
  • 代码
    +关注

    关注

    30

    文章

    4553

    浏览量

    66645
收藏 人收藏

    评论

    相关推荐

    请问ucos libMicrium.a文件做什么的

    目前在做ucos cyclone上移植,发现官方例子里面用到了libgen目录下libMicrium.a文件。请问这个文件做什么的? 这部分有源代码吗?
    发表于 04-15 08:07

    C语言中的头文件

    #include 指令会指示 C 预处理器浏览指定的文件作为输入。预处理器的输出包含了已经生成的输出,被引用文件生成的输出以及 #include 指令之后的文本输出。
    发表于 02-23 14:06 148次阅读

    在ADUCM360_project.c文件里面为什么添加DioLid.h头文件会报错?如何正确添加自己编写的头文件

    在ADUCM360_project.c文件里面为什么添加DioLid.h头文件会报错?怎么正确添加自己编写的头文件
    发表于 01-11 06:09

    请问Linear Lab Tool具体是做什么的

    请问Linear Lab Tool具体是做什么的呢?
    发表于 01-05 12:52

    C语言必备知识头文件包含

    头文件在C语言中是非常重要的组成部分。
    的头像 发表于 12-01 18:20 760次阅读

    sot-223的第四管脚是用来做什么的

    sot-223的第四管脚是用来做什么的? 上面标有TAB IS VOUT或是TAB IS GND是什么意思?
    发表于 11-22 07:25

    什么是头文件头文件编写的一般格式要求是怎样?

    本文介绍头文件的定义、编写、保存及引用等方面的内容,包括了一般的格式要求、例程等。
    的头像 发表于 11-08 16:25 877次阅读
    什么是<b class='flag-5'>头文件</b>?<b class='flag-5'>头文件</b>编写的一般格式要求是怎样?

    C语言怎样处理json文件?

    获取到的JSON文件,怎样通过C语言进行处理,因为单片机里面只能用C语言,有没有C
    发表于 11-01 06:16

    C 语言头文件路径位置问题

    前言 前段时间在写 Linux 专栏的过程中,忽然想到一个问题 :C语言头文件路径,因为在GCC环境下面,可以很直观的了解到程序对头文件的查找位置,但是对于使用集成开发环境 KEIL 或者 IAR
    的头像 发表于 06-22 10:05 4076次阅读
    C <b class='flag-5'>语言</b>的<b class='flag-5'>头文件</b>路径位置问题

    你应该搞懂的 C 语言头文件路径问题

    前段时间在写 Linux 专栏的过程中,忽然想到一个问题 :C语言头文件路径,因为在GCC环境下面,可以很直观的了解到程序对头文件的查找位置,但是对于使用集成开发环境 KEIL 或者 IAR 的朋友们来说,一些系统的库
    的头像 发表于 06-14 11:41 3143次阅读
    你应该搞懂的 C <b class='flag-5'>语言</b><b class='flag-5'>头文件</b>路径问题

    上位机开发是做什么的

    上位机开发是做什么的 现在的上位机,就好像十年前的互联网,资本的注入使这个行业变得逐渐推上风口。我大学那会还很多前辈洋洋洒洒的评价如今的C端软件市场逐渐萎靡,B端才是真正的王道。但随着国家对工业
    发表于 06-05 11:04 998次阅读

    【笔记】单片机头文件的顺序会让程序报错?

    单片机程序中的头文件对程序的影响非常重要。头文件包含了函数、宏、结构体和其他声明的定义,它们提供了程序所需的各种功能和库。头文件的正确顺序可以确保程序能够正确编译、链接,并正确地使用所需的函数和定义
    的头像 发表于 05-19 09:50 889次阅读
    【笔记】单片机<b class='flag-5'>头文件</b>的顺序会让程序报错?

    立讯精密是做什么的

    立讯精密是做什么的 立讯精密是一家技术导向公司,专注于连接器、连接线、马达、无线充电、FPC、天线、声学和电子模块等产品的研发、生产和销售、高频产品开发,产品广泛应用于消费电子、通讯、企业级、汽车
    发表于 05-05 17:57 4145次阅读

    英威腾是做什么的

    英威腾是做什么的 英威腾全国共有12大研发中心,公司共有有效授权专利953项,其中发明专利254项、实用新型471项、外观专利228项 ;软件著作权备案278项,即获得有效知识产权1231
    发表于 05-04 13:40 863次阅读

    工业自动化是做什么的

    工业自动化是做什么的 工业自动化是一种运用控制系统(计算机、变频器、机器人等工控设备)与信息技术相结合的产物,主要用于协调工业中的各种运行工艺流程和机械,这样既可以节省人力资源,也能够优化生产效率
    发表于 04-24 10:33 735次阅读