Файлы заголовков в си (код программы из нескольких файлов) - C , C++
Primary tabs
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...
- Log in to post comments
- 18261 reads