Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Декларация имени функции и сигнатуры типа, но не тела функции – объявления функций.
Declaration of a function's name and type signature but not body
function declarations
В компьютерном программировании прототип функции – это объявление функции, которое указывает имя функции и сигнатуру типа (арность, типы данных параметров и тип возвращаемого значения), но не содержит тела функции. В то время как определение функции описывает, как функция выполняет свою задачу ("реализацию"), прототип функции лишь определяет её интерфейс, то есть, какие типы данных передаются на вход и возвращаются в качестве результата. Термин "прототип функции" особенно часто используется в контексте языков программирования C и C++, где размещение предварительных объявлений функций в заголовочных файлах позволяет разделить программу на единицы трансляции, то есть на части, которые компилятор может независимо преобразовать в объектные файлы, которые затем компоновщик объединяет в исполняемый файл или библиотеку. Объявление функции предшествует определению функции, предоставляя информацию об имени, типе возвращаемого значения и классе хранения, а также другие соответствующие атрибуты. Прототипы функций могут использоваться при:
In computer programming, a function prototype is a declaration of a function that specifies the function's name and type signature (arity, data types of parameters, and return type), but omits the function body. While a function definition specifies how the function does what it does (the "implementation"), a function prototype merely specifies its interface, i. e. what data types go in and come out of it. The term "function prototype" is particularly used in the context of the programming languages C and C++ where placing forward declarations of functions in header files allows for splitting a program into translation units, i. e. into parts that a compiler can separately translate into object files, to be combined by a linker into an executable or a library. The function declaration precedes the function definition, giving details of name, return type, and storage class along with other relevant attributes. Function prototypes can be used when either:
Определении внешнего типа
Создании части интерфейса
Defining an ExternalType
Creating an Interface part
В прототипе имена параметров необязательны (и в C/C++ имеют область видимости прототипа функции, то есть их область видимости заканчивается в конце прототипа), однако тип является обязательным, вместе со всеми модификаторами (например, если это указатель или ссылка на параметр), кроме случаев, когда указан только тип. В объектно-ориентированном программировании интерфейсы и абстрактные методы служат аналогичной цели.
In a prototype, parameter names are optional (and in C/C++ have function prototype scope, meaning their scope ends at the end of the prototype), however, the type is necessary along with all modifiers (e. g. if it is a pointer or a reference to parameter) except alone. In object oriented programming, interfaces and abstract methods serve much the same purpose.
Создание библиотечных интерфейсов
Размещая прототипы функций в файле заголовка, можно определить интерфейс библиотеки.
By placing function prototypes in a header file, one can specify an interface for a library.
Декларация класса
В C++ прототипы функций также используются в определениях классов.
In C++, function prototypes are also used in class definitions.