Смешивание файлов.c и.h
Я видел, как программы на C разбиты на .h
файлы с соответствующими .c
файлы.
Я знаю, что заголовочные файлы предназначены для макрокоманд / объявлений / прототипов функций, а файлы.c - для определения функций.
Но как эти .c
привык? передается из командной строки компилятора?
2 ответа
Файлы C объединяются не компилятором, а компоновщиком. В зависимости от того, как вы компилируете свой код, это может быть скрыто от вас.
Компилятор скомпилирует каждый из файлов C в объектный файл для каждого файла C. Затем компоновщик возьмет эти объектные файлы и объединит их в исполняемый файл или файл библиотеки.
2 варианта:
Пройти
.c
файлы в командной строке компилятора, все вместе, для команды "скомпилировать и связать все в одном". Вы обычно делаете это только для игрушек и очень маленьких проектовкомпилировать каждый
.c
файл индивидуально (отдавая его в виде отдельной командной строки компиляции), генерируя.o
файлы. Затем прохождение всех этих.o
файлы вместе с компоновщиком (обычно это та же команда, что и компилятор...) для создания вашего исполняемого файла. Таким образом, если вы измените.c
файл вам нужно только скомпилировать этот файл (чтобы создать его.o
файл снова) и ссылку, экономя много времени.