error C2011: 'LNode' :'struct' type redefinition 这是为什么?

赵Andy 2009-05-20 10:14:38

#define _LNODE_H_
#ifdef _LNODE_H_
typedef int ElemType;
struct LNode
{
ElemType data;
LNode *next;
};
typedef LNode *LinkList;
#endif _LNODE_H_

为什么会提示error C2011: 'LNode' : 'struct' type redefinition
这是为什么?请大家帮帮忙.
...全文
841 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengzhixi 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 brookmill 的回复:]
#ifndef _LNODE_H_
#define _LNODE_H_
[/Quote]

up
brookmill 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ZLL5267 的回复:]
这是c的还是c++的,在dev中怎么没有错呢????
[/Quote]
刚才没注意这个问题
typedef LNode *LinkList; // 用gcc编译出错,用g++编译通过

不过我觉得楼主的关键问题可能还是头文件重复包含,因为错误是“'struct' type redefinition ”
amossavez 2009-05-21
  • 打赏
  • 举报
回复
#ifndef _LNODE_H_
#define _LNODE_H_
...
#endif _LNODE_H_
ZLL5267 2009-05-20
  • 打赏
  • 举报
回复
这是c的还是c++的,在dev中怎么没有错呢????
brookmill 2009-05-20
  • 打赏
  • 举报
回复
LNode作为类型使用,前面必须有struct
除非是这么定义
typedef struct
{
......
} LNode;
LNode *LinkList;
brookmill 2009-05-20
  • 打赏
  • 举报
回复
LNode前面要加struct

struct LNode
{
ElemType data;
struct LNode *next; //******
};
typedef struct LNode *LinkList; //**********
lingyin55 2009-05-20
  • 打赏
  • 举报
回复
#define _LNODE_H_
这句要放在你包含这个头文件的源文件里面,不是放在这里。
brookmill 2009-05-20
  • 打赏
  • 举报
回复
#ifndef _LNODE_H_
#define _LNODE_H_

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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