Ви намагаєтесь згрупувати код відповідно до struct. C групування відбувається за файлами. Ви поміщаєте всі функції та внутрішні змінні в заголовок або заголовок та файл ".o" об'єкта, складений із вихідного файлу змінного струму.
Необов’язково винаходити об’єктну орієнтацію з нуля для програми на С, яка не є об’єктно-орієнтованою мовою.
Я це вже бачив. Це дивна річ. Кодери, деякі з них, мають огиду передавати об'єкт, який вони хочуть змінити, у функцію для його зміни, хоча це стандартний спосіб це зробити.
Я звинувачую C ++, тому що він приховував той факт, що об'єкт класу завжди є першим параметром у функції-члена, але він прихований. Отже, схоже, це не передача об’єкта у функцію, хоча вона і є.
Client.addClient(Client& c);
C є гнучким і може приймати передані речі за посиланням.
Функція змінного струму часто повертає лише байт стану або int, і це часто ігнорується. У вашому випадку це може бути відповідна форма
err = addClient( container_t cnt, client_t c);
if ( err != 0 )
{ fprintf(stderr, "could not add client (%d) \n", err );
addClient буде в Client.h або Client.c