繁体   English   中英

是否可以包含多个头文件,这些头文件定义具有相同名称的复杂结构?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM