![](/img/trans.png)
[英]#include <string> in a header the defines some structs. ERROR: string does not define a type
[英]Is it possible to include several header files that define complex structs with same names?
因此,我有几个自动生成的文件,每个文件都定义了一个具有唯一名称的复杂结构。 它们由一些原始类型和结构组成。
这是这两个文件的一个小方案。 一个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)
[...]
预先感谢您的建议!
这可能会导致重新定义错误。 我建议将Coordinates结构放在其自己的头文件中(防止多重包含),并将其包含在Car.h和Bike.h中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.