我有:
my_entity.h
typedef struct {
long _id;
char *_myEntityType;
char *_myEntitySubType;
long _myEntityGUID;
long _myEntityOwnerGUID;
long _myEntityContainerGUID;
} MyEntity;
typedef struct {
MyEntity *_myEntity;
} MyContainerEntity;
当我尝试运行项目时出现以下错误:
/my_entity.h: error: conflicting declaration ‘typedef struct MyContainerEntity MyContainerEntity’
} MyContainerEntity;
^
我错过了什么或做错了什么?
提前谢谢大家。
最佳答案
我使用了一种更简单的方法(避免在一行中使用这些结构执行多个步骤)并且使用以下文件没有问题:
我的实体.h
struct EntityStruct {
long _id;
char *_myEntityType;
char *_myEntitySubType;
long _myEntityGUID;
long _myEntityOwnerGUID;
long _myEntityContainerGUID;
} ;
typedef struct EntityStruct MyEntity ;
typedef struct {
MyEntity *pointer2MyEntity;
} MyContainerEntity;
主.c
#include <stdio.h>
#include "my_entity.h"
int main()
{
MyEntity firstEntity;
MyContainerEntity containerEntity;
containerEntity.pointer2MyEntity = &firstEntity;
return 0;
}
my_entity.h 的替代内容
typedef struct EntityStruct {
long _id;
char *_myEntityType;
char *_myEntitySubType;
long _myEntityGUID;
long _myEntityOwnerGUID;
long _myEntityContainerGUID;
} MyEntity ;
typedef struct {
MyEntity *pointer2MyEntity;
} MyContainerEntity;
好吧,我承认我弄错了,我认为有必要为该结构设置一个单独的不同名称,但即使是 OP 提供的代码也能正常工作(我最初没有测试它,因为我开始编辑它并仅测试了我的版本)。因此,由于他没有提供 .h 和 main() 的完整文件,我想我们帮不了他。
关于c - 如何实现继承: error: conflicting declaration ‘typedef struct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50454589/