Sie versuchen, Code nach Struktur zu gruppieren. Die C-Gruppierung erfolgt nach Datei. Sie fügen alle Funktionen und internen Variablen in einen Header oder einen Header und eine aus einer AC-Quelldatei kompilierte Objektdatei ".o" ein.
Für ein C-Programm, das keine objektorientierte Sprache ist, ist es nicht erforderlich, die Objektorientierung von Grund auf neu zu erfinden.
Ich habe das schon mal gesehen. Es ist eine seltsame Sache. Einige von ihnen haben eine Abneigung dagegen, ein Objekt, das sie ändern möchten, in eine Funktion zu übergeben, um es zu ändern, obwohl dies die Standardmethode ist.
Ich beschuldige C ++, weil es die Tatsache verborgen hat, dass das Klassenobjekt immer der erste Parameter in einer Mitgliedsfunktion ist, aber es ist versteckt. Es sieht also so aus, als würde das Objekt nicht an die Funktion übergeben, obwohl dies der Fall ist.
Client.addClient(Client& c);
C ist flexibel und kann vorübergehende Dinge als Referenz nehmen.
Die AC-Funktion gibt häufig nur ein Statusbyte oder int zurück und wird häufig ignoriert. In Ihrem Fall könnte eine richtige Form sein
err = addClient( container_t cnt, client_t c);
if ( err != 0 )
{ fprintf(stderr, "could not add client (%d) \n", err );
addClient wäre in Client.h oder Client.c