首页 > 其他分享 >#include_next定义

#include_next定义

时间:2023-05-30 23:11:17浏览次数:41  
标签:头文件 定义 包含 next 搜索 include 目录

#include_next和#include指令一样,也是包含一个头文件,它们的不同地方是包含的路径不一样。

 

#include_next的意思就是“包含指定的这个文件所在的路径的后面路径的那个文件”,听起来是不是很坳口,我自己也觉得是这样,但下面举个例子说明就清楚了。

例如有个搜索路径链,在#include中,它们的搜索顺序依次是A,B,C,D和E。在B目录中有个头文件叫a.h,在D目录中也有个头文件叫a.h,如果在我们的源代码中这样写#include <a.h>,那么我们就会包含的是B目录中的a.h头文件,如果我们这样写#include_next <a.h>那么我们就会包含的是D目录中的a.h头文件。#include_next <a.h>的意思按我们上面的引号包含中的解释来说就是“在B目录中的a.h头文件后面的目录路径(即C,D和E)中搜索a.h头文件并包含进来)。#include_next <a.h>的操作会是这样的,它将在A,B,C,D和E目录中依次搜索a.h头文件,那么首先它会在B目录中搜索到a.h头文件,那它就会以B目录作为分割点,搜索B目录后面的目录(C,D和E),然后在这后面的目录中搜索a.h头文件,并把在这之后搜索到的a.h头文件包含进来。

 

疑惑:搜索路径怎么看?

先-I指定的路径目录,再/user/local,最后到全局

 

参考:原文:https://blog.csdn.net/fjb2080/article/details/5247494 

 

根据《GCC技术参考大全》

该指示字可用于增加或修改系统头文件的定义,而不需要修改文件本身。例如,系统头文件/usr/include/stdio.h包含宏定义getc,它会从输入流中独处单个字符。要改变这个宏定义,让它总是返回同一个字符,保留头文件的其他内容,可以创建自己的stdio.h头文件,包含一下内容:

#include_next "stdio.h"

#undef getc

#define getc(fp) ((int)'x')

使用该头文件会包含系统的stdio.h,以及自己重定义的宏getc。

标签:头文件,定义,包含,next,搜索,include,目录
From: https://www.cnblogs.com/woodx/p/17444817.html

相关文章

  • 【Unity】记录一下:自定义组件的InspectorGUI面板,修改数据不保存问题
    使用target修改之后需要使用EditorUtility.SetDirty设置为脏,但是要注意的是应该设置target所指代的组件,而非是对.gameObject设置为脏,这是没有用的。[CustomEditor(typeof(MerryGoRound))]publicclassMerryGoRoundEditor:Editor{publicoverridevoidOnInspectorGUI(......
  • NavigationTabBar 自定义底部导航栏
    先来页面效果导入依赖implementation'devlight.io:navigationtabbar:1.2.5'先创建三个Fragment,贴出其中一个Fragment的代码 fragment_home.xml<?xmlversion="1.0"encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns:android="......
  • 定义视图
    select*fromemp;selectempno,ename,job,mgr,salfromemp;效率更高,但复用时输入时比较麻烦  select*fromempjoindeptonemp.deptno=dept.deptno解决方案:定义一个视图(建一个新表(虚拟))createorreplaceviewmyview1     --orreplace:创建或替换,针对以及......
  • 记录--Vue3自定义一个Hooks,实现一键换肤
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助核心使用CSS变量,准备两套CSS颜色,一套是在light模式下的颜色,一套是在dark模式下的颜色dark模式下的CSS权重要比light模式下的权重高,不然当我们给html添加自定义属性[data-theme='dark']的时候,dark......
  • leetcode 496. Next Greater Element I
    Youaregiventwoarrays(withoutduplicates)nums1andnums2wherenums1’selementsaresubsetofnums2.Findallthenextgreaternumbersfornums1'selementsinthecorrespondingplacesofnums2.TheNextGreaterNumberofanumberxinnums1isth......
  • resetFields失效与$nextTick
     这个问题会比较常见。我们经常会遇见这么写:update和add共用一个弹窗。update时,表单回显;add时,需要清空表单。  我们可能会用到Element-Ui表单的resetFields()方法,但是如果操作不当,这个resetFields()方法并不会生效。官网对这个方法的定义:resetFields: 对整个表单进行......
  • 自定义方法,实现按指定属性进行去重
    实例:根据age、sex、name对user对象集合进行去重//构建user对象publicclassUser{privateintid;privateStringname;privateintage;privateStringsex;privatedoubleheight;//构造方法、getter和setter略}//创建对象集合List<User......
  • priority_queue自定义比较函数的两种方法
    1#include<iostream>2#include<vector>3#include<queue>4usingnamespacestd;5intmain(){6structListNode{7intval;8ListNode*next;9ListNode():val(0),next(nullptr){}10L......
  • c语言学习day2(定义变量)
    1.常量const是constant的缩写表示常量 浮点数   double 当输入输出整数时使用%d当输入输出浮点型数时使用%lf数据类型 ......
  • vscode 自定义代码字体颜色,局部变量、全局变量、函数、宏、属性
    vscode自定义代码字体与颜色风格在setting.json中修改即可:在这里插入图片描述"editor.semanticTokenColorCustomizations":{       "enabled":true,//enableforallthemes       "rules":{           "*.static":{             ......