【发布时间】:2013-01-20 11:17:34
【问题描述】:
我有 4 个文件:
啊哈:
typedef struct {
int a;
} A;
b.h:
#include "a.h"
typedef struct {
A a;
int b;
} B;
c.h:
#include "a.h"
typedef struct {
A a;
double c;
} C;
直流电:
#include "b.h"
#include "c.h"
//Here I want to use types A, B and C
int 和 double 只是示例,我遇到的真正问题要复杂得多。
关键是应该可以通过简单的转换将类型 B 和 C 转换为 A。
我要解决的问题是它说 A 类型被多次包含,这是可以理解的,因为 d.c 包含 b.h 包含 a.h,但 a.h 也包含在 c.h 中。
有没有办法做到这一点?
【问题讨论】:
-
您正在寻找“包括警卫”。
-
投射值?除非你喜欢切片。您可能需要考虑使用包含保护,因为您似乎没有循环引用,所以这应该可以解决而无需花哨。
-
不,我已经阅读了stackoverflow.com/questions/3227654/… 上的问题,但无法真正弄清楚如何在我的代码中实现这一点。