Ich schreibe ein C-Programm und mit gcc 4.4.6 zu kompilieren. Ich möchte keinen C++ Compiler verwenden.C-Programmierung Entkopplung Schnittstelle von der Implementierung mit Struktur Vorwärtsdeklaration
Ich bin eine Komponente implementieren und ich beabsichtige, mehrere Instanzen dieser Komponente zur Laufzeit von anderen Komponenten leben und besitzen.
Um die Definition einer Schnittstelle von ihrer Implementierung zu entkoppeln und die internen Strukturen und Datentypen zu verbergen, die in dieser Implementierung verwendet werden, habe ich versucht, eine Forward-Struct-Deklaration zu verwenden.
Schnittstelle Datei: component.h
struct _hidden_implementation_type;
typedef struct _hidden_implementation_type visible_type_to_clients;
int component_function1(visible_type_to_clients instance);
Implementierungsdatei: component.c
struct _hidden_implementation_type
{
int foo;
};
Client-Datei: main.c
int main(int argc, char** argv)
{
visible_type_to_clients a;
return component_function1(a);
}
Wie mache ich das? Welcher andere Ansatz gibt es, um die Instantiierung mehrerer Komponenten zu ermöglichen und andernfalls eine Entkopplung zwischen der öffentlichen Schnittstelle und der Implementierung zu erreichen?
Der üblicher Ansatz beinhaltet * Zeiger * Typen zu strukturieren, wobei die internen Details der Struktur sind für die Kunden nicht sichtbar. –
'instance_type' ist die Instanz selbst, kein Typ. – Olaf
Das war ein Tippfehler. – Rire1979