История изменений
Исправление hobbit, (текущая версия) :
А че в паскале не так? Каждый же модуль компилируется, потом, на основании интерфейсной информации модуля, линкуется в бинарь
К моменту линковки в случае паскаля однозначно ясно, из какого модуля брать разрешаемую зависимость. В случае си же она начинает искаться по всему зоопарку библиотек - нет никакой логической связи между *.h (которые обработал ещё препроцессор) и *.a (которые обрабатывает уже линкер).
Зато есть возможность всеми этими процессами управлять
Управление тут нужно далеко не всегда. В тех же случаях, когда оно действительно нужно (сильно платформозависимый код и др.) - в современном паскале точно так же есть макроопределения, условная компиляция и инклуды. Такая кувалда для сложных случаев.
C/C++ же заставляют махать кувалдой всякий раз, когда хватило бы лёгенькой киянки.
P.S. О, оказывается, ты уже про молотки писал. Так вот, у хорошего мастера в инструментарии вполне может быть сильно больше одного молотка.
Исходная версия hobbit, :
А че в паскале не так? Каждый же модуль компилируется, потом, на основании интерфейсной информации модуля, линкуется в бинарь
К моменту линковки в случае паскаля однозначно ясно, из какого модуля брать разрешаемую зависимость. В случае си же она начинает искаться по всему зоопарку библиотек - нет никакой логической связи между *.h (которые обработал ещё препроцессор) и *.a (которые обрабатывает уже линкер).
Зато есть возможность всеми этими процессами управлять
Управление тут нужно далеко не всегда. В тех же случаях, когда оно действительно нужно (сильно платформозависимый код и др.) - в современном паскале точно так же есть макроопределения, условная компиляция и инклуды. Такая кувалда для сложных случаев.
C/C++ же заставляют махать кувалдой всякий раз, когда хватило бы лёгенькой киянки.