Преимущества раздельной компиляции по сравнению с другими способами сборки программного обеспечения, где весь текст программы помещается в один огромный файл: 2
- Поддержка концепции модульности. 2 Каждый из исходных файлов отвечает за небольшой, законченный по смыслу фрагмент программы. 2 Это упрощает и ускоряет разработку, а также командную разработку, когда над одной программой трудится большой коллектив разработчиков. 2
- Ускорение компиляции. 3 При внесении изменений достаточно проводить трансляцию только той части кода, которую затронули изменения. 3
- Проще отслеживать зависимости между файлами, чем между элементами программы в одном файле. 3 Это важно при документировании проекта. 3
- Возможность писать разные фрагменты программы на разных языках программирования. 2
Некоторые недостатки раздельной компиляции:
- Необходимость перекомпоновывать все файлы, хотя компоновка обычно выполняется быстрее компиляции. 2
- Возможны проблемы с множественными реализациями символов. 4 Когда линкер встречает несколько одноимённых символов, реализованных в разных файлах, он не может определить, к какому из них отсылается компилятор и выдаёт ошибку. 4
- Возможны сложности с разделением кода на модули, особенно если программа плохо спроектирована и части кода имеют сильные взаимные связи. 5