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

头文件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 条评论
登录 后参与评论

相关文章

来自专栏HansBug's Lab

1668: [Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富

1668: [Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富 Time Limit: 3 Sec  Memory Limit: ...

3214
来自专栏HansBug's Lab

3892: [Usaco2014 Dec]Marathon

3892: [Usaco2014 Dec]Marathon Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1...

3296
来自专栏HansBug's Lab

1682: [Usaco2005 Mar]Out of Hay 干草危机

1682: [Usaco2005 Mar]Out of Hay 干草危机 Time Limit: 5 Sec  Memory Limit: 64 MB Subm...

3194
来自专栏HansBug's Lab

1644: [Usaco2007 Oct]Obstacle Course 障碍训练课

1644: [Usaco2007 Oct]Obstacle Course 障碍训练课 Time Limit: 5 Sec  Memory Limit: 64 M...

2606
来自专栏HansBug's Lab

1653: [Usaco2006 Feb]Backward Digit Sums

1653: [Usaco2006 Feb]Backward Digit Sums Time Limit: 5 Sec  Memory Limit: 64 MB ...

2494
来自专栏HansBug's Lab

1711: [Usaco2007 Open]Dingin吃饭

1711: [Usaco2007 Open]Dingin吃饭 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 56...

3298
来自专栏HansBug's Lab

1741: [Usaco2005 nov]Asteroids 穿越小行星群

1741: [Usaco2005 nov]Asteroids 穿越小行星群 Time Limit: 5 Sec  Memory Limit: 64 MB Sub...

2456
来自专栏HansBug's Lab

3433: [Usaco2014 Jan]Recording the Moolympics

3433: [Usaco2014 Jan]Recording the Moolympics Time Limit: 10 Sec  Memory Limit:...

2504
来自专栏HansBug's Lab

2272: [Usaco2011 Feb]Cowlphabet 奶牛文字

2272: [Usaco2011 Feb]Cowlphabet 奶牛文字 Time Limit: 10 Sec  Memory Limit: 128 MB S...

2456
来自专栏数据结构与算法

BZOJ1007: [HNOI2008]水平可见直线(单调栈)

1061

扫描关注云+社区