返回狼盟编程首页
编程搜索 [狼盟旧档]
论坛统计


请输入搜索关键字:
├─◆ 狼盟首页 > 查看贴子 > 详细信息

楼主

求助:一个CPP文件调用另一个CPP文件的函数时出现的问题


代码很简单,问题多多呀main.cpp里的代码:#include <stdio.h>#include "puts.cpp"typedef struct student{    int num;    char name[20];}stud;stud info[2];void main(){    add();}puts.cpp里的代码:#include "main.cpp"void add(){    int i;    for(i=0;i<2;i++)    {        scanf("%d",&info[i].num);        gets(info[i].name);    }}会产生一警告一错误:warning C4182: #include nesting level is 363 deep; possible infinite recursionatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit





eastcowboy [ 1 楼 ]
2006-05-31 23:07:00
两个文件相互include,这样是不行的。在main.cpp中只需要加上extern void add();然后把include去掉,应该就行了。建议:使用头文件,而不是include一个cpp文件。 

户注 [ 2 楼 ]
2006-05-31 23:13:00
去掉了#include "puts.cpp"另一个里#include "main.cpp"也干掉了加了extern void add();连接还是有两个错误:main.obj : error LNK2001: unresolved external symbol "void __cdecl add(void)" (?add@@YAXXZ)Debug/test.exe : fatal error LNK1120: 1 unresolved externals 

ckis [ 3 楼 ]
2006-05-31 23:14:00
把所有的定义放到头文件 然后include#include "puts.cpp"  ------------>>   #include "puts.h" 

户注 [ 4 楼 ]
2006-05-31 23:17:00
但我的另一个文件是puts.cpp文件呀并且我也不知道怎么编写.h文件。。。 

户注 [ 5 楼 ]
2006-05-31 23:18:00
所有定义放在头文件里?包括全局变量,函数声明,还有#include <stdio.h>这类的? 

ckis [ 6 楼 ]
2006-05-31 23:19:00
最简单的方法是 把2个文件粘贴成一个文件 就不存在互相引用 

户注 [ 7 楼 ]
2006-05-31 23:23:00
谢谢,用.h文件我已经搞定了但为什么用cpp文件不行呢? 

户注 [ 8 楼 ]
2006-05-31 23:24:00
。。。我的目的是想让一个长的代码分成两块。。。这样看起来舒服点 

户注 [ 9 楼 ]
2006-05-31 23:49:00
顶,请求帮助呀 

ckis [ 10 楼 ]
2006-06-01 00:00:00
include是预读指令 在inlucde 的地方 相当于亲自输入调用的文件如果2个文件相互调用的话 代码会无限大 

户注 [ 11 楼 ]
2006-06-01 00:12:00
嗯,了解既然是相当于把别的.cpp文件调用过来,我只在main.cpp里加上include "puts.cpp"为什么也不行呢?提示里说在puts.cpp里没有对结构数组进行定义!