Próbujesz zgrupować kod według struktury. Grupowanie w C odbywa się według pliku. Umieszczasz wszystkie funkcje i zmienne wewnętrzne w nagłówku lub nagłówku i pliku obiektu „.o” skompilowanym z pliku źródłowego ac.
Nie ma potrzeby odkrywania na nowo orientacji obiektowej od podstaw dla programu C, który nie jest językiem zorientowanym obiektowo.
Widziałem to już wcześniej. To dziwna rzecz. Niektórzy z nich mają niechęć do przekazywania obiektu, który chcą zmienić, w funkcję, która go zmieni, nawet jeśli jest to standardowy sposób.
Obwiniam C ++, ponieważ ukrywało to, ż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 tak jest.
Client.addClient(Client& c);
C jest elastyczny i może przyjmować przekazywanie rzeczy przez odniesienie.
Funkcja AC często zwraca tylko bajt stanu lub int i często jest to ignorowane. W twoim przypadku może być odpowiednia forma
err = addClient( container_t cnt, client_t c);
if ( err != 0 )
{ fprintf(stderr, "could not add client (%d) \n", err );
addClient byłby w Client.h lub Client.c