首页 » 信息技术 »

C语言的include语句

2017年7月7日 / 45次阅读
CC++

C语言的include语句用来包含头文件,所谓包含,就是将头文件中的内容,插入到include语句所在位置,这是C语言编译过程预处理要做的事情,很简单,一定不神秘。include有两个格式,一种是尖括号<>,一种是双引号""。

 

#include <>

格式:引用标准库头文件,编译器从标准库目录开始搜索

尖括号表示只在系统默认目录或者括号内的路径查找,通常用于包含系统中自带的头文件;

尖括号:在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找;

 

#incluce ""

格式:引用非标准库的头文件,编译器从用户的工作目录开始搜索

双引号表示先在程序源文件所在目录查找,如果未找到则去系统默认目录查找,通常用于包含程序作者编写的头文件;

双引号:首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。

 

补充一个常识:

C语言中以#(发音hash)开头的语句,都叫做预编译指令。比如:#include,#define,#if等。

 

2019-03-15:

由给定的 C 语言实现版本决定 #include 命令所指定文件的搜索路径。同时,也由实现版本决定文件名是否区分大小写。对于命令中使用尖括号指定的文件(<文件名>),预处理器通常会在特定的系统路径下搜索,例如,在 Unix 系统中,会搜索路径 /usr/local/include 与 /usr/include。

对于命令中用双引号指定的文件("文件名"),预处理器通常首先在当前目录下寻找,也就是包含该程序其他源文件的目录。如果在当前目录下没有找到,那么预处理器也会搜索系统的 include 路径。文件名中可以包含路径。但如果文件名中包含了路径,则预处理器只会到该目录下寻找。

你也可以通过使用编译器命令行选项,或在环境变量(该变量通常称为 INCLUDE)中加入搜索路径,为 #include 命令指定自己的搜索路径。具体的做法请参考采用的编译器的说明文档。

最后强调一下,include就是将文件内容在置顶位置展开做预编译,使用.h文件后缀是一个约定俗成的做法,在网上看到有人直接include一个.c文件:

include一个.c文件

include一个.c文件

只需要关注include的.c文件,两句extern是有问题的,这里其实更本不需要这两句话。

本文链接:https://www.maixj.net/ict/c-include-15909

相关文章

留言区

《C语言的include语句》有2条留言

  • 麦新杰

    使用.h(header)只是一个早期的约定,同时,理解了头文件是内容插入,也就理解了,其实#inlcude语句放在任何地方都是可以的,不一定非要在文件的最开始。 []

  • 麦新杰

    也许应该这样来思考:#include将一个文件的全部内容插入,是为了这个.c文件服务的,并不是引用什么;使用#include有两个显而易见的作用:(1)将这个.c文件中的函数的申明放在.h中,这样就避免了前面的函数调用后面的函数的时候,出现implicit declaration of function这个warning,而且,总的有个地方放函数申明吧,谁让这是C语言呢;(2)将外部函数的extern申明放在.h中,同样也是避免implicit declaration of function这个warning。默认gcc不会显示这个warning,需要使用-Wall参数才能看到。 []


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top