记一笔:关于文件包含
2011-11-03 17:06
169 查看
转自:《Pointers on C》 Kenneth A. Reek 著
一、函数库文件包含
编译器支持两汉走不同类型的#include 文件包含:函数库文件和本地文件。事实上,它们之间的区别很小。
函数库头文件包含使用下面的语法。
#include <filename>
对于filename,并不存在任何限制,不过根据约定,标准库文件以一个.h后缀结尾。
编译器通过观察由编译器定义的“一系列标准位置”查找函数库头文件。你所使用的编译器的文档应该说明这些标准位置是什么,以及你怎样修改它们或者在列表中添加其他位置。例如,在典型情况下,运行于UNIX系统上的C编译器在/usr/include目录查找函数库头文件。这种编译器有一个命令行选项,允许你把其他目录添加到这个列表中,这样你就可以创建你自己的头文件函数库。同样,请查阅你使用的编译器的文档,看看你的系统在这方面是怎样规定的。
二、本地文件包含
下面是#include 指令的另一种形式。
#include "filename"
标准允许编译器自行决定是否把本地形式的#include 和函数库形式的#include 区别对待。你可以对本地头文件先使用一种特殊的处理方式,如果失败,编译器再按照函数库头文件的处理方式对它们进行处理。处理本地头文件的一种常见策略就是在源文件所在的当前目录进行查找,如果该头文件并未找到,编译器就像查找函数库头文件一样在标准位置查找本地头文件。
你可以在所有的#include 语句中使用双引号而不是尖括号。但是,使用这种方法,有些编译器在查找函数库头文件时可能会浪费少许时间。对函数库头文件使用尖括号的另一个较好的理由是它能给读者提供一些信息。使用尖括号,下面这条语句
#include <errno.h>
显然显然引用的是一个函数库头文件。如果使用另一种形式,
#include "errno.h"
就无法弄清楚这个和上面相同的文件到底是一个函数库头文件还是一个本地文件。要想农明白它究竟是哪种类型?唯一的方法是检查执行编译过程的目录。
一、函数库文件包含
编译器支持两汉走不同类型的#include 文件包含:函数库文件和本地文件。事实上,它们之间的区别很小。
函数库头文件包含使用下面的语法。
#include <filename>
对于filename,并不存在任何限制,不过根据约定,标准库文件以一个.h后缀结尾。
编译器通过观察由编译器定义的“一系列标准位置”查找函数库头文件。你所使用的编译器的文档应该说明这些标准位置是什么,以及你怎样修改它们或者在列表中添加其他位置。例如,在典型情况下,运行于UNIX系统上的C编译器在/usr/include目录查找函数库头文件。这种编译器有一个命令行选项,允许你把其他目录添加到这个列表中,这样你就可以创建你自己的头文件函数库。同样,请查阅你使用的编译器的文档,看看你的系统在这方面是怎样规定的。
二、本地文件包含
下面是#include 指令的另一种形式。
#include "filename"
标准允许编译器自行决定是否把本地形式的#include 和函数库形式的#include 区别对待。你可以对本地头文件先使用一种特殊的处理方式,如果失败,编译器再按照函数库头文件的处理方式对它们进行处理。处理本地头文件的一种常见策略就是在源文件所在的当前目录进行查找,如果该头文件并未找到,编译器就像查找函数库头文件一样在标准位置查找本地头文件。
你可以在所有的#include 语句中使用双引号而不是尖括号。但是,使用这种方法,有些编译器在查找函数库头文件时可能会浪费少许时间。对函数库头文件使用尖括号的另一个较好的理由是它能给读者提供一些信息。使用尖括号,下面这条语句
#include <errno.h>
显然显然引用的是一个函数库头文件。如果使用另一种形式,
#include "errno.h"
就无法弄清楚这个和上面相同的文件到底是一个函数库头文件还是一个本地文件。要想农明白它究竟是哪种类型?唯一的方法是检查执行编译过程的目录。
相关文章推荐
- 关于c中文件包含和文件工程的意思
- 关于hibernate的hibernate.cfg.xml配置文件包含 .hbm.xml配置文件的路径写法
- 关于JSP不能通过浏览器直接访问,要通过servlet跳转,但一个jsp文件里面用<iframe>标签包含了另一个jsp的访问问题
- 关于C++头文件相互包含的问题(个人见解)
- 关于无法打开包含文件:“fstream.h” 的问题
- 关于Linux下内核编程函数使用头文件包含的问题解决方案
- 关于#define #ifdef 与文件包含
- 关于.h文件相互包含的一个现象
- 关于.cpp文件包含另一个.cpp文件出错的原因以及解决办法
- 关于C++/C中防止头文件的重复包含的解决办法
- 关于在Android中一个XML文件包含另外一个XML的方法
- 关于通过vmware安装windows8的几个问题及解决--无人参与应答文件包含的产品密钥无效
- 关于Mac中库文件和包含文件搜索路径
- 关于头文件中定义的全局变量的包含
- 包含对操作文件及访问的SD卡一些方法和关于bitmap压缩
- 关于前置声明与C++中头文件相互包含的几点问题
- 关于c中防止头文件重复包含的2个方法
- 关于通过vmware安装windows8的几个问题及解决--无人参与应答文件包含的产品密钥无效
- 关于PHP中的文件包含方法
- 关于前置声明与C++中头文件相互包含的几点问题