Я работаю над переходом от франкенштейновских и однофайловых программ с тысячами строк к хорошо структурированным и организованным многофайловым программам. Прямо сейчас то, что кажется естественным (наивным), состоит в том, чтобы сделать любовный треугольник включений заголовка для трех из моих файлов:
файл_1 включает файл_2, файл_4
файл_2 включает файл_3, файл_4
файл_3 включает файл_1 .... и т. д. и т. д.
Эти файлы имеют переменные, методы, структуры и т. Д., Которые мне нужны между другими файлами.
И, конечно, я получаю ошибки двойного включения.
Мой вопрос: следует ли мне избегать этих проблем, используя директивы препроцессора в заголовках (например, включая структуры, методы и т. Д. Целиком в заголовке), или я должен компилировать с использованием make-файла (который я слышу) также может быть использован для решения этой проблемы --- но я никогда не делал)?