c语言嵌套.exe文件,两个文件相互嵌套使用ifdef。endlf,产生的函数未定义问题

本文介绍了在C++编程中遇到的头文件互相包含导致的嵌套过深问题,以及由此引发的函数未定义错误。通过使用`#ifdef`预处理器指令来限制包含层级,虽然解决了嵌套问题,但产生了新的问题。解决方案是将函数声明放入独立的头文件,并在需要的地方包含该头文件,避免直接包含源文件。同时,确保结构体在正确的地方声明并extern引用,以解决函数未定义的错误。
摘要由CSDN通过智能技术生成

本人想在main.cpp里调用regi-sign.cpp里面的函数,也想在regi-sign.cpp调用main.cpp里面的结构体

这样的话两个文件就会出现两个互相包含的include 这样会出现嵌套太深

本人用了ifdef …….endlf 这个,这样可以解决嵌套太深的问题,但是这样就出现了新的问题

main.cpp里面就出现egist和signin函数没有定义。求高手解决

这里是main.cpp 的头文件:

#include

#define N 100

#ifdef INCLUDE_LEVEL_LIMI

#define INCLUDE_LEVEL_LIMIT 10

#include “regi-sign.cpp”

#endif

struct coust{

char count[20];

char password[20];

};

extern struct coust person[N],*perso,*coun,*pass;

int main()

{

int i,order;

scanf(“%d”,&order);

switch(order)

{

case 1:regist(person,fp);

case 2:Signin(person,fp);

case 0: return 0;

default :printf(“输入错误!”);

}

return 0;

}

这里是regi-sign.cpp:

#include “main.cpp”

extern “C” void regist(struct coust *person ,FILE *fp)

{

}

extern “C” void Signin(struct coust *person,FILE *fp)

{

}

解决方案

5

为什么不把声明放在头文件中,都include头文件

10

函数声明放在头文件里,函数实现放在源文件里,这样就只用包含头文件了

CPP文件本身就会参与编译,所以不要去包含

25

加一个regi-sign.h文件,把regi-sign.cpp中的函数和变量在regi-sign.h中声明下,在main。cpp中包含regi-sign.h文件

使用mian里面的结构体,在main.cpp中extern struct coust person[N],*perso,*coun,*pass;

regi-sign.h中struct coust person[N],*perso,*coun,*pass;定义就行了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明两个文件相互嵌套使用ifdef。endlf,产生的函数未定义问题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值