各位C高手来帮菜鸟捉虫子啊!参与有分!!!!!

flyingghost 2001-12-03 05:40:44
环境TC2.0,错误不明,
大虾指点一下为什么出错了?怎样修改?我很奇怪!急!!!
分可以无限多,只要我能给出!

这是我的源程序:


typedef struct tears/////////这是结构声明
{
int xpos,ypos,color,r;
int ymax,rmax;
int radius;
int flag;
struct tears *next;
}drop;

void initdrop(drop *obj)/////////这是函数体
{ //////////////////编译时这行出错
obj->xpos=640;
obj->ypos=20;
obj->color=14;
obj->r=1;
obj->rmax=R_MAX;
obj->ymax=480;
obj->radius=2;
obj->flag=0;
}

main()
{
drop *cur,*temp;
..........
initdrop(cur);这里调用
initdrop(temp);
..........
}

错误信息是:Error D:\TC20\TEARS.C 86: Type mismatch in redeclaration of 'initdrop'
...全文
157 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingghost 2001-12-09
  • 打赏
  • 举报
回复
哈哈!问题解决!!!
很奇怪的原因,把initdrop函数放在其他几个函数之前就ok了!
解决了问题却不知道是为什么???莫名其妙!
awinder 2001-12-05
  • 打赏
  • 举报
回复
同意hz129(孤星古雨),定义指针后,应为其分配内存。
勉励前行 2001-12-05
  • 打赏
  • 举报
回复
這樣寫不愁過不了關。
typedef struct
{int xpos,ypos,color,r;
int ymax,rmax;
int radius;
int flag;
struct tears *next;
}drop;

void initdrop(drop *obj)
{
...
}
kingfire 2001-12-05
  • 打赏
  • 举报
回复
typedef struct tears/////////这是结构声明
{
int xpos,ypos,color,r;
int ymax,rmax;
int radius;
int flag;
struct tears *next;
}drop;

void initdrop(struct drop *obj)/////////这是函数体/******加struct吧!可能是编译器不同!我的通过了[VC6]*********/
{ //////////////////编译时这行出错
obj->xpos=640;
obj->ypos=20;
obj->color=14;
obj->r=1;
obj->rmax=R_MAX;
obj->ymax=480;
obj->radius=2;
obj->flag=0;
}

main()
{
drop *cur,*temp;
..........
initdrop(cur);这里调用
initdrop(temp);
..........
}
bluerain@cloud 2001-12-04
  • 打赏
  • 举报
回复
可能你的头文件中没有使用
ifdef之类的预编译命令,很有用
birdinfly 2001-12-04
  • 打赏
  • 举报
回复
同意楼上的.
nomy 2001-12-04
  • 打赏
  • 举报
回复
initdrop重复定义了
一定是在你的程序某处曾经声明过一个initdrop,现在的实现与声明不符,就会出
这种错误。
flyingghost 2001-12-04
  • 打赏
  • 举报
回复
谢谢大家帮忙!说明一下,给出的源代码是省略了好多的,只写了有关出错的东东。文中的“///////”是我加上去为给大家说明用的,源代码里没有。
出错错误信息是:
Error D:\TC20\TEARS.C 86: Type mismatch in redeclaration of 'initdrop'
这是什么意思?
realsweat 2001-12-03
  • 打赏
  • 举报
回复
同意楼上的!
xilimi10 2001-12-03
  • 打赏
  • 举报
回复
会不会没给指针分配类存呀?应该没问题的!把你的出错提示给出来看看!
hz129 2001-12-03
  • 打赏
  • 举报
回复
#define R_MAX 100
typedef struct tears
{
int xpos,ypos,color,r;
int ymax,rmax;
int radius;
int flag;
struct tears *next;
}drop;

void initdrop(drop *obj)
{
obj->xpos=640;
obj->ypos=20;
obj->color=14;
obj->r=1;
obj->rmax=R_MAX;
obj->ymax=480;
obj->radius=2;
obj->flag=0;
}

main()
{
drop *cur,*temp;
cur = (drop*)malloc(sizeof(drop));
temp = (drop*)malloc(sizeof(drop));
initdrop(cur);
initdrop(temp);
free(cur);
free(temp);
}

以上程序在TC2.0中编译、运行正常
filename7762 2001-12-03
  • 打赏
  • 举报
回复
你可以说详细点吗?你能把源程序给写出来吗?
maoxianwang 2001-12-03
  • 打赏
  • 举报
回复
楼上的,你说什么呢??
forever_chang 2001-12-03
  • 打赏
  • 举报
回复
------------->/////////这是结构声明
tc2.0里不支持该种注释形式!用/* */替换
tangjiang 2001-12-03
  • 打赏
  • 举报
回复
drop *cur,*temp;

你那指针往哪里指?
maoxianwang 2001-12-03
  • 打赏
  • 举报
回复
楼上的,你怎么看出来是C++的呢?佩服啊

void initdrop(drop *obj)/////////

drop *obj之间的逗号呢?老兄,C里真的没有drop这个类型啊!!

请给分,求你了,分都给我吧,我急要分
maoxianwang 2001-12-03
  • 打赏
  • 举报
回复
楼上的,你怎么看出来是C++的呢?佩服啊

void initdrop(drop *obj)/////////

drop *obj之间的逗号呢?老兄,C里真的没有drop这个类型啊
宝_爸 2001-12-03
  • 打赏
  • 举报
回复
我没有看出来,但是TC2。0不支持c++

是不是有这方面的原因呢?

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧