Файлы заголовков в си (код программы из нескольких файлов) - C , C++

Forums:

Заголовочные файлы в языке си.

Вообще говоря, для использования сразу нескольких "источников" кода в процессе компиляции, вам необходимо просто "подключить" эти файлы к проекту (в среде Pelles C) - единственное с чем придётся разобраться - это с прототипами функций - эти

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

другое дело - если вы не желаете десять раз размещать прототипы в каждой функции, а потом их ещё десять раз и менять (в случае если в файле, где описывается тело функции вы вдруг решите изменить заголовок этой функции) - тут нам на помощь приходят файлы заголовков в си -
принцип работы прост - список прототипов , для определённой библиотеки функций, исходный код которых имеется у вас ,например один файл с той вот функцией =

int multiply(int a, int b)
  { return a * b; }

- размещается в файле заголовка ( имя которого заканчивается "точкой аш" = ".h") =
file yourheadername.h=

int multiply(int a, int b);

этот файл (заголовка) - включается в тот файл, где находиться функция - точка входа в программу =
File Main.c

#include <stdio.h>
#include "yourheadername.h";

int main (void)
  {
     int x = 10;
     int y = 20;
     int result;
     result  = multiply(x,y);

     printf("The result is %d",result);

    return 0;
}

Если же вдруг , функции , находящиеся в вашем файле -библиотеке вызывают друг друга перекрёстно (в исполнении одних , содержатся вызовы других -т.е. одни зависят от других ) =

int multiply(int a, int b)
  { return a * b; }
int multiply2(int a, int b)
  { int c;
 c = multiply(a,b);
 return c*2; }

следует включить файл заголовка (который теперь конечно же должен содержать прототипы двух функций - если вы планируете использовать обе)
file yourheadername.h=

int multiply(int a, int b);
int multiply2(int a, int b);

#include "yourheadername.h"
и в сам файл (файлы) , содержащий функции которые мы используем как библиотеку - то есть что-то общее для многих задач (например в наш файл с описанием этих функций, вторая из которых зависит от первой) -

#include "yourheadername.h";
int multiply(int a, int b)
  { return a * b; }
int multiply2(int a, int b)
  { int c;
 c = multiply(a,b);
 return c*2; }

_______________________________
Источники (почитать ещё) =
http://ru.wikipedia.org/wiki/%D0%97%D0%B...
http://citforum.ru/programming/cpp/gl4.s...
http://gcc.gnu.org/onlinedocs/cpp/Header...