Прототип функции - декларация функции в некоторых языках программирования, при которой указывается только ее название, тип и количество и типы ее аргументов. Такое объявление необходимое и достаточное для компилятора при создании правильного объектного кода.
Необходимость в объявлении прототипа функции перед определением ее реального кода возникает при сложных вложенных вызовах одной функции в другой. Декларация прототипа позволяет программисту избежать отслеживания последовательности написания функций в программе. Кроме того, реальный код функции может находиться в отдельной, уже откомпилированный библиотеке, подключаемой к программе компоновщиком.
Объявление прототипов функций стандартных библиотек С и С + + помещены в специальные заголовочные файлы, которые присоединяются к программе препроцессором на первом этапе компилирования.
Пример
Например, встретившись со строчкой кода:
компилятор не будет знать типа данных, который возвращает функция sin, и, или выдаст ошибку, или (что хуже) преобразует результат вызова функции в целое число.
Во избежание такой ситуации в программе перед вызовом функции необходимо поместить объявление ее прототипа:
double sin( double );
...
a = sin ( x );
В этом объявлении указано, что функция sin принимает агрумент типа действительного числа двойной точности и возвращает действительное число двойной точности.
Альтернативный и самый лучший вариант - это использовать заголовочный файл math.h, в котором прототип функции sin уже объявлен вместе с другими тригонометрическими функциями:
#include<math.h>
...
a = sin( x );