Зачем нужно подключение заголовочного файла? Для возможности использования определенных функций из других модулей. Это значительно уменьшает размер программы из-за уничтожения дублирующих друг друга функций. Объясним на примере.
Есть файл AZX, в котором прописана функция ask.
1 2 3 4 |
int ask(int a, int b, int c) { return (a + b + c)*pi; } |
У вас есть заголовочный файл AZX.h для файла AZK, в котором описаны функция ask (задан прототип данной функции) и константа pi.
1 2 3 4 5 6 7 |
#ifndef AZX_H #define AZX_H int ask(int,int,int); const float pi=3.146; #endif |
Подключаем заголовочный файл AZX_H к файлу AZX. Подключение всегда объявляется в начале файла специальной командой include.
1 |
#include <AZX.h> |
После подключения AZX.h становится возможным использовать функцию ask из файла AZX (не из AZX.h, в нем лишь прототип данной функции).
1 2 3 4 5 6 |
#include <AZX.h> int call(int s,int j) { return ask(s,j,ask(s,j,s)); } |
Функция call вернет (s+j+(s+j+s)*pi)*pi, то есть использует функцию ask, не описываемую в данном файле. Так же в файле AZK возможно использовать константу pi, также объявленную в AZX.h.
1 2 3 4 |
int wall(int z) { return z*pi; } |
С помощью подключения заголовочных файлов обычно работают с многомодульными проектами, когда описать все в одном файле-модуле не представляется возможным, а при разбиении на несколько файлов возникает необходимость использования в одном файле того, что является частью другого файла. Эту проблему и решает использование заголовочных файлов.