头文件互相包含的问题

object c中,如果头文件中出现互相引用的情况,例如

a.h:

include "b.h"


b.h:

include "a.h"


那么在a.h中定义 

b*b1;

的话,是会找不到类型的,应该是为了避免互相包含导致死循环

所以,如果确实需要互相包含,那么应该把include "b.h"写在a.m里面,这样就没问题了

不过在c++中可以定义宏来避免重复包含,应该object c也可以吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言中的文件互相包含问题,是指多个文件之间相互引用、相互包含而导致的编译错误。当两个文件相互引用时,会造成无限循环的包含,使得编译器无法正常解析和处理。 这个问题通常由于程序的模块化设计不合理所导致。在C语言中,文件的作用是引入函数、变量的声明和定义,以供其他源文件使用。如果两个或多个文件之间相互引用,意味着它们之间存在依赖关系,即一个文件中引用了另一个文件中的函数或变量。 当文件A引用了文件B,而文件B又引用了文件A时,编译器会陷入无限循环,因为当编译器处理文件A时,会读取并解析文件B,而在处理文件B时,又会读取并解析文件A,如此循环下去,直到编译器出现错误。 为了解决文件互相包含问题,可以采取以下方法: 1. 使用预编译指令#ifndef、#define和#endif来避免重复包含。在文件的开和结尾使用这些指令,可以防止文件被重复引用。 2. 使用前向声明来替代包含文件。如果只需要引用函数或变量的声明而不需要其具体定义,可以使用前向声明来替代包含文件的方式,以减少文件之间的相互依赖。 3. 重新设计程序结构,减少文件之间的相互引用。通过合理的程序设计,可以降低模块之间的耦合性,减少或避免文件互相包含问题。 综上所述,文件互相包含问题是C语言中常见的编译错误,通过采取预编译指令、前向声明和重新设计程序结构等方法,可以有效地解决这个问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值