Próbujesz zgrupować kod według struct. Grupowanie C odbywa się według pliku. Wszystkie funkcje i zmienne wewnętrzne w nagłówku lub umieszczasz w nagłówku i pliku ".o" obiektu skompilowanym z pliku źródłowego c.
Nie jest konieczne odświeżanie obiektowej orientacji od zera dla programu C, który nie jest językiem zorientowanym obiektowo.
Widziałem to już wcześniej. To dziwna sprawa.Niektórzy z nich mają awersję do przekazania obiektu, który chcą zmienić, w funkcję, która go zmieni, nawet jeśli jest to standardowy sposób.
Obwiniam C++, ponieważ ukrył fakt, że obiekt klasy jest zawsze pierwszym parametrem w funkcji składowej, ale jest ukryty. Wygląda więc na to, że nie przekazuje obiektu do funkcji, mimo że jest.
Client.addClient(Client& c); // addClient first parameter is actually
// "this", a pointer to the Client object.
C jest elastyczny i może przyjmować przekazywanie przedmiotów przez odniesienie.
Funkcja C często zwraca tylko bajt statusu lub int i często jest ignorowana. W twoim przypadku właściwa forma może być
err = addClient(container_t cnt, client_t c);
if (err != 0)
{ fprintf(stderr, "could not add client (%d) \n", err);
addclient byłoby Client.h lub Client.c
Nie można mieć funkcje w elemencie w C; możesz spróbować z grubsza zasymulować to za pomocą wskaźników funkcji. – Fingolfin
Czy wskaźniki funkcji są akceptowalnym zamiennikiem? http://stackoverflow.com/a/840703/635678 –