【答疑解惑】头文件使用过程中需要注意的几个点

头文件c/c++程序十分常见,java 中换成了import。我们经常用到它,正因为如此,一些细节东西容易被忽略。今天我们就讲讲:

头文件的作用有三:

1、C\C++采用源文件单独编译为object文件,最后有链接器链接object文件成为可执行文件。头文件解决了彼源文件中变量和函数在此源文件中引用。

2、头文件中的函数接口和全局变量起占位符的作用和参数类型与表达式匹配的合法行检测的作用,早期的C编译器不具有后者的功能。

3、便于一二进制的形式发行类库,因此源码实现的细节。

C语言,使用include指令,包含头文件,但又细分两种形式:

1、#include “file1.h” gcc先在当前目录(指包含本条#include指令的源文件所在的目录)寻找file1.h,如果找不到,继续在由-iquote选项(如果有的话)指定的目录中寻找file1.h。

2、#include <file2.h> gcc按照以下顺序查找file2.h:

-Idir1 -Idir2 ... /usr/local/include libdir/gcc/include /usr/include 第一行中,-Idir1 -Idir2 ... 是用户通过gcc的-I选项指定的目录。值得一提的是,放在/usr/local/include/下的头文件也会被gcc自动的检索.

3、#include “file3.c”

这种使用也是可以的用法与1类似。

头文件引用是一个比较复杂的过程,头文件中应用其他头问文件等等。如果使用不好会导致编译错误摸不着头脑。一定要注意。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-08-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏康怀帅的专栏

Bash echo read 命令详解

echo 命令用来输出内容,read 命令用于读取用户输入。 echo 高亮输出 格式如下: $ echo -e "\033[字背景颜色;文字颜色m字符串\03...

2955
来自专栏流媒体

C语言编译过程

预编译结果解释 # linenum filename flags 分别对应行号、文件、标识。 flag对应的含义

692
来自专栏从流域到海域

Python Windows下分布式进程的坑(分布式进程的一个简单例子)

下面这个例子基于”廖雪峰的Python教程:分布式进程”原例在Linux上运行,直接在Windows上运行会出现错误,下面是针对原例进行的改进,使之能成功...

2765
来自专栏Jerry的SAP技术分享

SAP云平台的Document Service

SAP云平台以微服务的方式提供了Document的CRUD(增删改查)操作。该微服务基于标准的CMIS协议(Content Management Interop...

3914
来自专栏阮一峰的网络日志

require() 源码解读

2009年,Node.js 项目诞生,所有模块一律为 CommonJS 格式。 时至今日,Node.js 的模块仓库 npmjs.com ,已经存放了15万个模...

3528
来自专栏李鹏的专栏

JAVA 高并发设计

同步和异步通常用来形容一次方法调用,同步方法,调用者必须等到方法调用返回后,才能继续后续的行为,异步方法调用会立即返回,调用者就可以继续后续的操作。

3560
来自专栏Python

python文件和目录操作方法大全

一、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法。 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.get...

1876
来自专栏闻道于事

Linux-看完这篇Linux基本的操作就会了

1213
来自专栏古时的风筝

C/C++中动态链接库的创建和调用

DLL 有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。下面为你介绍C/C++...

19910
来自专栏数据之美

浅谈 java 中构建可执行 jar 包的几种方式

        有时候,由于项目的需要,我们会将源码编译后以工具包(class打成jar包)的形式对外提供,此时, 你的 jar 包不一定要是可执行的,只...

3425

扫码关注云+社区