Смешивание файлов.c и.h

Я видел, как программы на C разбиты на .h файлы с соответствующими .c файлы.

Я знаю, что заголовочные файлы предназначены для макрокоманд / объявлений / прототипов функций, а файлы.c - для определения функций.

Но как эти .c привык? передается из командной строки компилятора?

2 ответа

Решение

Файлы C объединяются не компилятором, а компоновщиком. В зависимости от того, как вы компилируете свой код, это может быть скрыто от вас.

Компилятор скомпилирует каждый из файлов C в объектный файл для каждого файла C. Затем компоновщик возьмет эти объектные файлы и объединит их в исполняемый файл или файл библиотеки.

2 варианта:

  • Пройти .c файлы в командной строке компилятора, все вместе, для команды "скомпилировать и связать все в одном". Вы обычно делаете это только для игрушек и очень маленьких проектов

  • компилировать каждый .c файл индивидуально (отдавая его в виде отдельной командной строки компиляции), генерируя .o файлы. Затем прохождение всех этих .o файлы вместе с компоновщиком (обычно это та же команда, что и компилятор...) для создания вашего исполняемого файла. Таким образом, если вы измените .c файл вам нужно только скомпилировать этот файл (чтобы создать его .o файл снова) и ссылку, экономя много времени.

Другие вопросы по тегам