我得到以下代码:
// file external_module.h
typedef externaldata * externalhdl; // opaque pointer
externalhdl external_Create();
// file internal_module.h
typedef internaldata * internalhdl; // opaque pointer
internalhdl internal_Create();
我想做的是使用外部模块的不透明指针作为模块内部的不透明指针来保存不必要的分配。目前我的解决方法是:
typedef struct {externalhdl e} internaldata;
internalhdl internal_Create()
{
internalhdl p = (internaldata*) malloc (sizeof(internaldata));
p.e = external_Create();
return p;
}
我想做的是使用类似的东西:
typedef ??? internaldata; //Don't know how
internalhdl internal_Create()
{
return external_Create();
}
从我的角度来看,这应该是可能的,因为两者都是指针,但我需要让它免费警告?谢谢你的帮助。