Введение

Декларация имени функции и сигнатуры типа, но не тела функции – объявления функций.

В компьютерном программировании прототип функции – это объявление функции, которое указывает имя функции и сигнатуру типа (арность, типы данных параметров и тип возвращаемого значения), но не содержит тела функции. В то время как определение функции описывает, как функция выполняет свою задачу ("реализацию"), прототип функции лишь определяет её интерфейс, то есть, какие типы данных передаются на вход и возвращаются в качестве результата. Термин "прототип функции" особенно часто используется в контексте языков программирования C и C++, где размещение предварительных объявлений функций в заголовочных файлах позволяет разделить программу на единицы трансляции, то есть на части, которые компилятор может независимо преобразовать в объектные файлы, которые затем компоновщик объединяет в исполняемый файл или библиотеку. Объявление функции предшествует определению функции, предоставляя информацию об имени, типе возвращаемого значения и классе хранения, а также другие соответствующие атрибуты. Прототипы функций могут использоваться при:

Определении внешнего типа
Создании части интерфейса

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

Создание библиотечных интерфейсов

Размещая прототипы функций в файле заголовка, можно определить интерфейс библиотеки.

Декларация класса

В C++ прототипы функций также используются в определениях классов.