IBMForever писал(а):Обычно команды препроцессора заканчиваются расширением .h. Однако в книге встретилось расширение .с :
# include "fil2.c" Это опечатка или же можно и с расширением .с проограммировать на Си?
на самом деле обычно .h это макросы и декларации прототипов функций
в .c обычно содержатся сами функции, но,
никто не мешает поступать 1) не так
2) вместо прототипов включать сам код (особенно для маленьких проектов, где бардак можно контролировать без особого труда))
3) вариант конкатенации, когда практически весь проект объединяют в один файл и компилируют одной командой, получая так называемую "амальгамацию" или jumbo-build
использовалось ранее в KDE (0.9 - 1.x - возможно 2.x), используется сейчас в sqlite, firefox, webkit-gtk
разумеется ни один компьютер пока не соберет firefox или webkit-gtk из одного исходника, там потребление памяти будет колоссально и преимущества от многоядерности - ноль, но там делается группировка файлов и вместо тысяч вызовов компилятора получается несколько сотен, что заметно ускоряет процесс.
Вариант не особенно для DOS, т.к. конкатенация - памятезатратна, но по мелочи можно сделать, например включить какую-то библиотеку в виде исходника как один .c файл
у каждого программиста есть свой "велосипед" с функциями, вот можно его таким образом включить, не вынося компиляцию отдельно или компоновку