> For the complete documentation index, see [llms.txt](https://op-al.gitbook.io/s-30-voprosy-i-dop.-voprosy/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://op-al.gitbook.io/s-30-voprosy-i-dop.-voprosy/19.-mnogofailovaya-organizaciya-proekta.-faily-s-rasshireniem-.h-i-.c-ikh-naznachenie..md).

# 19.	 Многофайловая организация проекта. Файлы с расширением \*.h и \*.c, их назначение.

**Многофайловая организация проекта** - это разделение проекта на несколько файлов.

Для нового файла (за исключением исполнительного файла, в котором прописана функция main) надо создать два файла с одинаковыми названиями, но разными форматами: один - .h, второй - .c.  В файле формата .c мы пишем реализацию наших функций, а в файле .h - ТОЛЬКО заголовки функций. К исполнительному файлу мы подключаем только заголовочный файл(.h) с помощью #include. Во время компиляции, вместо #include подставляются заголовки функций, а потом и сами функции.

В файлах .h необходимо писать только заголовки, потому что, если в .h файлах прописать код самой функции, то при компиляции, у программы будет перегрузка у функции (то есть для одной функции будет более одного описания ее поведения), что является ошибкой.

Для чего проекты делятся на файлы:

1. Простота понимания кода.
2. Простота компиляции.
3. Многоразовое использование функций
4. Оптимизация памяти

**Модуль** - пара файлов .c и .h
