隐藏C结构中的成员
我一直在阅读有关C语言中的OOP的知识,但我从未喜欢过如何像C ++中那样拥有私有数据成员。但是后来我想到可以创建2个结构。一个在头文件中定义,另一个在源文件中定义。 // ========================================= // in somestruct.h typedef struct { int _public_member; } SomeStruct; // ========================================= // in somestruct.c #include "somestruct.h" typedef struct { int _public_member; int _private_member; } SomeStructSource; SomeStruct *SomeStruct_Create() { SomeStructSource *p = (SomeStructSource *)malloc(sizeof(SomeStructSource)); p->_private_member = 42; return (SomeStruct *)p; } 从这里您可以将一个结构转换为另一个结构。这被认为是不良做法吗?还是经常做?