C语言 是否有办法在源文件中定义结构/枚举,但在头文件中给出接口



是否有任何方法可以隐藏源文件(.c)中的结构/枚举,并且仅在头文件(.h)中提供其接口?

不确定这就是你要找的,但是你可以在头文件中定义一个大小为512的结构体,只需在结构体中有一个char[512]

可以定义一个完全不同的结构,它的总大小相同,但成员不同。然后结构的用户可以分配和释放它,但是你必须非常小心,你的结构是正确的字节数。

通常,如果你想隐藏整个实现,你只需要返回一个void指针并处理分配,但你可以这样做:

struct MyStruct {
int version;
char name [28] ;
char hidden[480];
};

然后使用你想要的隐藏字节。

最新更新