Я працюю над середнім вбудованим додатком в C, використовуючи ОО-подібні методи. Мої "класи" - це .h / .c модулі, що використовують структури даних та функціональні покажчики для імітації інкапсуляції, поліморфізму та введення залежності.
Тепер можна було б очікувати, що myModule_create(void)
функція прийде разом із myModule_destroy(pointer)
колегою. Але проект, який впроваджується, ніколи не повинен бути вивільнений, реалістично створені ресурси.
Я маю на увазі, якщо у мене є 4 послідовних порти UART і я створюю 4 екземпляри UART з необхідними штифтами та налаштуваннями, немає абсолютно жодної причини ніколи не хотіти знищувати UART №2 в якийсь момент під час виконання.
Отже, слідуючи принципу YAGNI (вам це не знадобиться), я повинен опускати деструкторів? Це здається мені надзвичайно дивним, але я не можу придумати їх користь; ресурси звільняються, коли пристрій вимикається.
myModule_create(void)
функціонувати? Ви можете просто жорстко кодувати конкретні екземпляри, які ви очікуєте використовувати в інтерфейсі, який ви відкриєте.