Правилен ли такой подход к разбиению C приложения на модули?
Подскажите пожалуйста, правильно ли так делать. И если нет, то как надо?
Допустим, есть приложение с основным кодом в app.c.
У него есть хедер app.h.
Далее я хочу вынести большой кусок завязанного функционала в файл module.c, со своим module.h.
Тогда у меня:
- app.h инклюдит module.h
- module.h ничего не инклюдит
- module.c инклюдит app.h
В хедер файлах находятся define, объявления структур и сигнатуры функций.
Правильно ли так делать? Что если я захочу забрать module.* в другой проект, мне придётся руками переписывать инклюды?
Смотря в чём задача.
Возможно, нет никаких проблем.
Возможно, удастся вытащить общую функциональность в defines.h.
Возможно, удастся каким-то образом разорвать порочный круг. Например, в ООП это можно делать через интерфейс.