c语言循环移位头文件,C #include 循环引用问题, 头文件循环引用

这篇博客探讨了C++中头文件的循环依赖问题,例如header1.h包含header2.h,而header2.h又包含header1.h。通过使用#ifndef X_H_ #define X_H_ #endif预处理器指令来避免代码重复并解决这种循环引用。文章提供了实例代码展示如何正确处理这种情况,并引用了相关资源来进一步理解头文件管理和避免循环依赖。
摘要由CSDN通过智能技术生成

例子1

说明: header1.h 包含 header2.h; header2.h 包含 header1.h;/** circular dependency -- 测试循环引用 */#include #include "header1.h"int main(void) {    printf("this is my function!");    return 0;

}

header1.h#ifndef Header1_H_#define Header1_H_#include "header2.h"/*

=========header2.h=======

========header1.h======

#include 

再次把 header1.h 展开

#ifndef Header1_H_

#define Header1_H_

由于已经 定义过header1_H_ ;所以其中代码不会执行;

// Other content

#endif

========header1.h=====

struct A2{

int value;

};

=========header2.h=========

*//**

*  下面的类型如果是 指向 A2 结构体的指针; 可以不引用 header2.h 头文件; eg: struct A2 *p;

*  也可写成 void * p ;

*//**

* 下面变量定义必须需要知道A2的值,所以需要引入头文件

*/struct A1 {

int value;    struct A2 p;};#endif

header2.h#ifndef Header2_H_#define Header2_H_#include "header1.h"struct A2{

int value;

};#endif

这里通过 #ifndef X_H_ #define X_H_ #endif 来解决;

[Headers and Includes: Why and How]http://www.cplusplus.com/foru...

[Avoiding Circular Dependencies of header files

]https://stackoverflow.com/que...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值