惧留孙网

juliusun.com

在线教程 > C语言教程 > 预处理指令之include

预处理指令之include

第 44/50 节 冥河C语言教程


头文件就是代码库,当我们需要使用某头文件的内容时,就需要包含头该文件。如printf函数是在stdio.h中定义的,那么当我们使用printf函数时,就需要包含stdio.h文件。

头文件是代码库,里面的代码可供源文件(如.c或.cpp文件)使用,头文件不能独立编译成可执行文件。

预处理include指令用来包含头文件。一个include指令只能包含一个头文件,要包含多个头文件,要用多个include指令。头文件可以嵌套包含,即一个头文件里还可以包含其它头文件。

include指令用法有两种,两种用法仅仅是在搜索头文件时,默认搜索的目录不同。两种用法如下:

在系统目录中搜索的用法格式为:

#include<文件名>

先在源文件所在目录中搜索,搜索不到再到系统目录中搜索用法格式为:

#include"文件名"

总结一下,include指令后面接尖括号<>时,编译器会去系统目录中搜索包含的文件。当include后面接双引号时,编译器会优先在当前目录中搜索,搜索到立即包含,搜索不到再到系统目录中寻找。如果还搜索不到会出错。

include和后面的尖括号<>或双引号中间可以用空格分开。部分资料介绍,include后面是双引号时,只会在源文件所在目录中搜索,为确保正确,请正确使用尖括号和双引号。

stdio.h头文件由于常用,很多流行的编译器在不手动包含的情况下,仍然自动包含。

以包含系统目录中的stdio.h头文件,例:


  1. #include<stdio.h>

假设系统头文件所在目录为C:\Program Files\Microsoft Visual Studio 10.0\VC\include文件夹,.c所在目录为C:\projects\test文件夹,则上述代码会在C:\Program Files\Microsoft Visual Studio 10.0\VC\include中搜索stdio.h文件。而下面的代码:


  1. #include"my.h"

会在.c文件所在目录C:\projects\test文件夹中搜索my.h。

include在包含文件时还可以写文件相对路径,文件windows用\分隔、linux用/分隔,比如在系统目录C:\Program Files\Microsoft Visual Studio 10.0\VC\include文件夹下有个sys文件,sys文件夹里有个utime.h头文件,想要包含utime.h可以这样写:


  1. #include<sys\utime.h>

编译器发现include后面的\目录分隔符时,会自动分析出是系统目录下sys文件下的utime.h。路径的规则同样适用双引号源文件所在目录的情况。

上面介绍了包含子目录头文件的情况。包含父目录时,父目录用..\表示。如.c所在目录为C:\projects\test文件夹,但是在C:\projects文件下有一个p.h,在C盘根目录有个c.h,要包含这两个文件可以这样写:


  1. #include "..\p.h" //..表示父目录即C:\projects文件,..\p.h表示C:\projects\p.h
  2. #include "..\..\c.h" //C盘根目录是C:\projects\test父目录的父目录,所以要加两个..\,表示父目录的父目录

上述代码以Windows系统为基准,其它环境请以实际情况为准。比如linux系统以/为路径分隔符。

作者:冥河 QQ:3304576112
交流QQ群:554701039 C语言讲课群
本教程内容由本站保留版权,请勿复制传播
抖音
©2015-2024 惧留孙网 juliusun.com

京ICP备15039193号-1

首页 教程 下载 文章 聊天 我的