是否有任何方法可以隐藏源文件(.c)中的结构/枚举,并且仅在头文件(.h)中提供其接口?
不确定这就是你要找的,但是你可以在头文件中定义一个大小为512的结构体,只需在结构体中有一个char[512]
。
可以定义一个完全不同的结构,它的总大小相同,但成员不同。然后结构的用户可以分配和释放它,但是你必须非常小心,你的结构是正确的字节数。
通常,如果你想隐藏整个实现,你只需要返回一个void指针并处理分配,但你可以这样做:
struct MyStruct {
int version;
char name [28] ;
char hidden[480];
};
然后使用你想要的隐藏字节。