предположим, что у вас есть программа на C, C ++ или любом другом языке, использующая схему "compile-objects-then-link-them".
Когда ваша программа не маленькая, она может скомпрометировать несколько файлов, чтобы упростить управление кодом (и сократить время компиляции). Кроме того, после определенной степени абстракции у вас, вероятно, будет глубокая иерархия вызовов. Особенно на самом низком уровне, где задачи являются наиболее повторяющимися, чаще всего вы хотите навязать общую структуру.
Однако, если вы фрагментируете свой код в разные объектные файлы и используете очень абстрактную архитектуру для своего кода, это может привести к снижению производительности (что плохо, если вы или ваш руководитель подчеркиваете производительность).
Одним из способов обойти это может быть обширное встраивание - это подход шаблонного метапрограммирования: в каждую единицу перевода вы включаете весь код ваших общих гибких структур и рассчитываете на компилятор, чтобы противодействовать проблемам с производительностью. Я хочу сделать что-то подобное без шаблонов - скажем, потому что они слишком сложны в обращении или вы используете простой C.
Вы можете написать весь свой код в одном файле. Это было бы ужасно. Как насчет написания скрипта, который объединяет весь ваш код в один исходный файл и компилирует его? Требование ваших исходных файлов не слишком дико написано. Тогда компилятор, вероятно, мог бы применить гораздо больше оптимизации (встраивание, уничтожение мертвого кода, арифметика во время компиляции и т. Д.).
Есть ли у вас опыт или возражения против этого "трюка"?