Прототип функции это описание типов аргументов функции и типа возвращаемого функцией значения.
По сути, прототип это строчка вида:
тип_возвращаемого_значения имя_функции(тип_аргумента1, тип_аргумента2, ...);
Например:
double log(double);
int min(int,int);
void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
Это прототипы трех функции:
- log функция от одного аргументом
double
, возвращающая значение типа double
- min функция от двух аргументов типа
int
, возвращающая значение типа int
- qsort функция от четырех аргументов; первый типа
void*
(адрес массива),
второй типа size_t
(число элементов), третий size_t
(размер элемента в байтах),
четвертый int (*compar)(const void *, const void *)
соответствует
указателю на функцию, которая умеет сравнивать два элемента; она принимает два адреса
и возвращает число типа int
. Возвращаемое значение отсутствует (void
= ничто).
Прототипы функций нужны для того, чтобы указать компилятору на существование функций,
которые определены в других
исходных файлах или в подключаемых библиотеках или объектных файлах.