C语言中A文件中的代码调用B文件中的某个函数,假如B文件中这个函数需要某个头文件中定义的某些东西,那么A文件中要不要包含这个头文件需要视具体情况而定。

比如:在C语言中,假如文件A调用的函数int DisplayInit(void)在文件B中被定义,而函数DisplayInit()的函数体中用到了结构体“struct DispOpr”,这个结构体是在头文件disp_manager.h中定义的,显然,文件B中是要包含头文件disp_manager.h的,那么现在问题来了,请问文件A中是否也要包含头文件disp_manager.h?

文件A是否需要包含disp_manager.h,取决于以下这个因素:

文件A是否直接使用了struct DispOpr

  • 如果文件A中直接使用了struct DispOpr(例如定义变量、传递参数、访问成员),那么文件A需要包含disp_manager.h,因为只有包含这个头文件,文件A才能知道结构体struct DispOpr的完整定义。

  • 如果文件A只调用了DisplayInit()函数,而并没有直接使用struct DispOpr,则文件A不需要包含disp_manager.h。在这种情况下,文件A中只需要知道DisplayInit()的声明,而不需要了解其内部实现。


具体场景举例

情况1:文件A直接使用了struct DispOpr
#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值