Sto scrivendo un programma in C e utilizzando gcc 4.4.6 per compilare. Non voglio usare un compilatore C++.Interfaccia di disaccoppiamento di programmazione C dall'implementazione con la dichiarazione struct forward
Sto implementando un componente e ho intenzione di avere diverse istanze di questo componente dal vivo e di proprietà di altri componenti in fase di esecuzione.
Come mezzo per disaccoppiare la definizione di un'interfaccia dalla sua implementazione e nascondere le strutture interne e i tipi di dati che utilizza in tale implementazione, ho cercato di utilizzare una dichiarazione di struttura in avanti.
file diInterfaccia: component.h
struct _hidden_implementation_type;
typedef struct _hidden_implementation_type visible_type_to_clients;
int component_function1(visible_type_to_clients instance);
file di implementazione: component.c
struct _hidden_implementation_type
{
int foo;
};
file del client: main.c
int main(int argc, char** argv)
{
visible_type_to_clients a;
return component_function1(a);
}
Come posso farlo funzionare? Quale altro approccio esiste per consentire l'istanziazione di più componenti e fornire un disaccoppiamento tra l'interfaccia pubblica e l'implementazione in altro modo?
L'approccio comune comporta puntatori * * per strutturare i tipi, in cui i dettagli interni della struttura non sono visibili ai clienti. –
'instance_type' è l'istanza stessa, non un tipo. – Olaf
Quello era un errore di battitura. – Rire1979