#include_next的语意

news/2024/7/5 23:23:12 标签: include, basic, 编译器, header, 语言, file
#include_next的语意
继承和头文件

继承是对象或者文件通过拷贝其它对象或文件的内容,从而衍生出一个新的对象。对于C语言的头文件来说,继承就是一个头文件包含另一个头文件,然后更改(如更改一些宏的值)或增加一些内容。
如果衍生头文件和基础头文件(base header file)的文件名不同,处理方法很简单,只需在衍生头文件中包含基础头文件即可#include "basic"(base指代基础头文件的文件名)。
有时候我们需要使衍生出来的头文件和基础头文件的文件名相同。例如一个应用程序需要使用系统头文件sys/signal.h,但是在某些系统上/usr/include/sys/signal.h不完全和应用程序期望的一样,那么定义一个本地("local" version)的头文件将会很方便,如定义/usr/local/include/sys/signal.h来覆盖或补充系统提供的头文件。
首先写出满足程序期望的头文件/usr/local/include/sys/signal.h,然后在编译时增加"-I /usr/local/include"选项。但是如果要在新的头文件中包含标准的sys/signal.h,通过在新的文件中增加"#include <sys/signal>"是不可能实现的。因为这样包含的是文件本身而不是系统的头文件,从而导致无限的递归。
在新的头文件中增加"#include </usr/include/sys/signal.h>"固然可以解决,但是这种方式的缺点是固定了系统头文件的位置,如果系统头文件的位置改变了,这种方法就会失效。另一种简单的方法是使用"#include_next",表示包含文件名为该名字的下一个头文件。这条语句使编译器到其它目录中搜索该头文件。
继前面的例子,在头文件/usr/local/include/sys/signal.h中增加"#include_next <sys/signal.h>"就可能正确包含系统头文件了。

http://www.niftyadmin.cn/n/1737592.html

相关文章

《超越绩效》学习小结1 - 业绩和组织健康的五个框架-5A

如果要保持长期优势&#xff0c;则意味着我们既要关注业绩又要关注组织健康&#xff0c;领导者需要遵循一个能够将提升业绩和改善组织健康整合起来的结构化过程。 为了改变发生&#xff0c;我们选择五个基本问题来描述实现组织卓越的过程。每个问题概括出一个以A打头的词来简单…

短信流程

短信流程 短信流程涉及到文件&#xff1a;SMSMSG.C 、MessagesMiscell.c 、smspsHandler.c 等文件。 相关函数&#xff0c;底层有新短消息到达&#xff0c;则会响应mmi_frm_sms_new_sms_ind函数。 void mmi_frm_sms_set_protocol_event_handler(void) { SetProtocolEvent…

关于__proto__和prototype的理解

来自&#xff1a;http://www.cnblogs.com/zzcflying/archive/2012/07/20/2601112.html var Person function(name) {this.name name;}var p new Person(); new操作符的操作是var p {};p.__proto__ Person.prototype;Person.call(p); var p{}; 也就是说&#xff0c;初始…

mtk现在不支持语言的字库和输入法,支持的字库和输入法

mtk现在不支持语言的字库和输入法&#xff1a;老挝语(Lao),缅甸语(Burmese,Myanmar),高棉语(柬埔寨语,Khmer),藏文(Tibetan),维吾尔文(uighur),哈萨克文(kazakh),阿姆哈拉语(Amharic, Ethiopic埃塞俄比亚),柯尔克孜(kirghiz),吉尔吉斯语(Kyrgyz),白俄罗斯语(Belarusian), 海地克…

多国语言

印欧语系 印欧语系大概包括&#xff1a;印地语、孟加拉语、旁遮普语、马拉蒂语、比哈尔语、古吉拉特语、乌尔都语、奥里亚语、拉贾斯坦语、僧伽罗语、阿萨姆语、尼泊尔语、信德语、茨冈语&#xff08;吉卜赛语&#xff09;、克什米尔语、比利语、康卡尼语、马尔代夫语&#xff…

团队领导力

一&#xff0c;团队发展的四个阶段&#xff1a; 1&#xff0c; 团队形成期&#xff1b; 2&#xff0c; 团队风暴期&#xff1b; 3&#xff0c; 团队规范期&#xff1b; 4&#xff0c; 团队绩效期&#xff1b; 二&#xff0c;团队形成期的团队领导力 任何团队在刚刚建立…

VPATH与vpath的区别与应用

在Linux操作系统管理中&#xff0c;经常需要用到make命令来编译一些源代码。如内核升级&#xff0c;驱动程序安装等过程中&#xff0c;就需要用到这个命令。关于这个命令的使用技巧已经是老生常谈了。不过笔者这次要谈的是一个被大家所忽视的细节&#xff0c;即VPATH与vpath的区…

常用的基于token的实现方案

token常常用在各种应用中&#xff0c;如下场景&#xff1a; 1&#xff0c;用户输入密码和帐号后&#xff0c;系统进行验证后&#xff0c;生成一个session&#xff0c;分配一个sessionid给使用者&#xff0c;后续服务使用者就无需每次都输入密码和验证密码了&#xff0c;只需把对…