GCC编译器提供了-I选项(字母I就是include单词的首字母大写)用来指定头文件所在的目录。那么,GCC编译器在编译代码时,解析到需要引用头文件时,就去 -I选项指定的目录下查找。下面我们来举例讲解怎么样定义和使用自己创建的头文件。

首先,我们在源码的当前目录下创建 test.h 文件,文件是以 .h 后缀结尾,表示一个头文件。test.h头文件的内容如下:

然后,在test.c源文件的代码如下:

其中的代码部分:

#include "test.h"   //引用用户自定义头文件

此时,通过#include关键字,引用了用户自定义的头文件。那么,gcc编译如下:

gcc test.c -o exe

注意:test.h头文件与test.c在同一个目录下,所以,gcc在编译test.c的时候,在当前目录下查找test.h头文件。找到该头文件,然后,引用test.h头文件中定义的NUM宏。

程序运行结果如下

可以看到,我们在test.c源文件中,引用了test.h头文件中定义的NUM宏。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

gcc 编译引用头文件相关推荐

  1. gcc编译自定义头文件

    2019独角兽企业重金招聘Python工程师标准>>> C中外部函数实例 内部函数:static声明,只对本文件域生效,外部不可引用 外部函数,使用extern声明,默认可以去掉,在 ...

  2. gcc编译链接头文件和库文件

    GCC与头文件 gcc -参数: -I ( i 的大写) :指定头文件路径(相对路径或绝对路径,建议相对路径) -i :指定头文件名字 (一般不使用,而是直接放在**.c 文件中通过#include& ...

  3. GCC 编译 C 语言文件

    GCC 编译 C 语言文件 题目要求 请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b) ...

  4. 引用头文件#include queue出错

    为什么80%的码农都做不了架构师?>>>    在工程头文件中引用头文件 #include <queue> 莫名奇妙出错,其原因很可能是由于头文件引用问题. includ ...

  5. linux-gcc 编译时头文件和库文件搜索路径

    linux-gcc 编译时头文件和库文件搜索路径 一.头文件    gcc 在编译时寻找所需要的头文件 :    ※搜寻会从-I开始    ※然后找gcc的环境变量 C_INCLUDE_PATH,CP ...

  6. 软件项目中引用头文件的几种方法及要点

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | 嵌入式专栏 好的编程习惯,会直接影响代码的质量,在嵌入式C/C++中,头文件的引用方式和方法有多种,同时一些细节 ...

  7. Linux下使用gcc时conio头文件问题

    1.当在linux下使用gcc编译一个.c文件时,出现下图错误 我使用gcc编译一个bank.c文件,报错显示conio头文件找不到. 2.这是因为conio是一个非标准库,适用于老的DOS系统,在W ...

  8. 头文件的内容以及如何引用头文件

    头文件的引用 头文件引用有两种形式:#include < stdio.h> 和 include "main.h ". 用< >引用的一般是编译器提供的头文件 ...

  9. glibc的头文件 linux_求助,编译glibc头文件时出错

    我用的软件包如下: binutils-2.16.tar.gz gcc-3.4.4.tar.bz2 glibc-2.3.5.tar.gz glibc-linuxthreads-2.3.5.tar.gz ...

最新文章

  1. 整数实现求整数和算法
  2. 这款PDF阅读器1秒定位论文公式变量,不同页图文也能同屏看,刷论文再也不用来回翻页看文找图了! | 开源...
  3. js insertBefore insertAfter appendChild
  4. SQL SERVER数据库文件收缩
  5. 自我辩证之计划是否该坚持?
  6. [Alpha阶段]第六次Scrum Meeting
  7. 黑马程序员_Java基础GUI
  8. [react] React v15中怎么处理错误边界?
  9. 计算机网络之传输层:3、TCP协议
  10. 陶陶摘苹果(升级版)(洛谷-P1478)
  11. MySQL Statement Cancellation Timer] but has failed to stop it.
  12. 数组下标索引为什么从0开始
  13. C++ 删除字符串的首尾空字符
  14. Web Worker 你知道吗?
  15. opencv转单通道python_在OpenCv(Python)中查找单通道图像的目录
  16. 明日方舟 长夜临光side story
  17. MATLAB图像处理(一)——计算机图形学之图像形状识别
  18. html特殊符号怎么输入法,特殊符号怎么打出来?电脑特殊符号输入方法
  19. 深度信念网络(Deep Belief Network)
  20. 就业双方合同、三方合同、用人单位类别、编制

热门文章

  1. 装备什么样的相机配件可以让索尼微单看起来更像摄像机?
  2. 工银二维码扫一扫,轻松付款
  3. 矩阵乘法的计算规则,为什么是A矩阵的行元素分别乘以B矩阵的列元素?
  4. Polygon zkEVM zkProver基本设计原则 以及 Storage状态机
  5. 洛谷 题解 P1828 【香甜的黄油 Sweet Butter】
  6. 牛皮!竟然有大佬基于 Spring Boot + Vue 开发了一套网易云amp;QQ音乐(附源码)。。。...
  7. Linux之tree命令生成文件目录结构
  8. MSM8976平台概述
  9. MySQL——标识列
  10. Vue-cli(vue脚手架)上万字总结,超详细教程