hur.cn - 华软网

 热门搜索

'struct' type redefinition错误

  作者:未知    来源:网络    更新时间:2010/12/9
在MyData.h资料中定义了一个结构体:
typedef struct Height
{
int name;
        int mHeight;
        int mSize;
}Height,*HeightPtr;

一起头,我在A类中定义了一个Height结构体变量,首在先A类的头资料中包函Height结构体所在的头资料
#include "MyData.h"
然后再声明Height结构体变量
HeightPtr uHeight1 uHeight2;

以上结构体变量在A类中运用正常,没有所有问题。之后我又要在B类中运用这个结构体,于是在B类头资料中
#include "Mydata.h"
然后再声明Height结构体变量
HeightPtr uHeight1 uHeight2;

这时再编译程序,就报犯毛病:
error C2011: 'Height' : 'struct' type redefinition
如果我把B类头资料中的 #include "Mydata.h"注释掉,再编译,又会报犯毛病:
error C2146: syntax error : missing ';' before identifier 'uHeight1'
error C2501: 'HeightPtr' : missing storage-class or type specifiers
.
.
一堆毛病。
---华软 网友回答---
宝姑娘好!
---华软网友回复---
#pragma once

重复定义了吧
---华软网友回复---
你重定义了 看有没有那里重复包括了
---华软网友回复---
typedef struct Height
{
int name;
  int mHeight;
  int mSize;
}Height,*HeightPtr;

名字一样
typedef struct tagHeight
{
int name;
  int mHeight;
  int mSize;
}Height,*HeightPtr;
---华软网友回复---
引用 2 楼 visualeleven 的回复:
#pragma once

重复定义了吧


可能是 typedef struct Height OtherName 该类型定义的原因,
我两次海涵数 MyData.h头资料,使得编译器在编译时,举行了两次
typedef struct Height
{
  .
  .
}Height,*HeightPtr;
定义,所以错这个毛病,在MyData.h头资料中加上 #pragma once 就OK了。谢谢!      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。