所以我有几个自动生成的文件,每个文件都定义了一个具有唯一名称的复杂结构。它们由一些原始类型和结构组成。
这是两个文件的一个小方案。一个car.h
和一个bike.h
,每个文件定义名为Coordinates
的相同结构。但是当我尝试编译时,我得到了重新定义错误。
是否可以包含那些头文件?或者我必须将它们合并到一个标题中吗?
car.h
#ifndef CAR_H_
#define CAR_H_
#pragma pack(push,4)
typedef struct
{
uint32 pos_x;
uint32 pos_y
} Coordinates;
#pragma pack(pop)
#pragma pack(push,1)
typedef struct
{
tUInt8 id;
Coodinates position_of_car;
} Car;
#pragma pack(pop)
[...]
Bike.h也定义了Coordinates
。
bike.h
#ifndef BIKE_H_
#define BIKE_H_
#pragma pack(push,4)
typedef struct
{
uint32 pos_x;
uint32 pos_y
} Coordinates;
#pragma pack(pop)
#pragma pack(push,1)
typedef struct
{
uint8 id;
Coodinates position_of_car;
} Bike;
#pragma pack(pop)
[...]
提前感谢您的建议!
答案 0 :(得分:0)
这可能会导致重新定义错误。 我建议将Coordinates结构放在自己的头文件中(防止多次包含)并将其包含在Car.h和Bike.h中