У меня есть следующие структуры:
service.h
* * 1004
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
не является непрозрачным. Это меня запутало. Это плохой выбор дизайна? На самом деле, мой вопрос:
Следует ли нам избегать предоставления определения структуры в случае, подобном описанному выше, чтобы вызывающая сторона не знала о ее членах?