我具有以下结构:
service.h
:
typedef struct source source;
enum status{
running = 1,
stopping = 2,
stopped = 3
};
struct service{
source *source_ptr;
enum status svc_status;
};
void request_shutdown(struct service);
在头文件中,void request_shutdown(struct service);
的定义将在相应的c
文件中提供。它取决于平台,因为它取决于struct source
定义,而该定义本身又取决于平台。但是struct service
不是不透明的。这让我感到困惑。这是一个糟糕的设计选择吗?实际上,我的问题是:
我们应该避免在上述情况下提供结构的定义,以使调用者不了解其成员吗?