Найти в Дзене
Ибрагим Данилов

Обычно прототипы функций размещаются в начале программы

Обычно прототипы функций размещаются в начале программы. Объявлять какие-либо переменные в прототипе не нужно, потому что это делается в фактической функции. Единственное, что нужно компилятору, это имя функции, тип возвращаемых ею данных и типы данных ее аргументов. Если функция не должна возвращать никакого значения, как, скажем, функция повернуть() в предшествующем примере, ее следует объявить с типом void. Однако функция повернуть() еще не охватывает все действия, необходимые для проезда по маршруту. Для каждого поворота на маршруте указаны направление поворота и название улицы. Следовательно, у функции поворота должны быть две переменные: направление и название улицы, на которую нужно свернуть. Это осложняет функцию, поскольку прежде чем поворачивать, нужно найти нужную улицу. Ниже приведен C-подобный псевдокод более полной функции поворота. В этой функции есть участок, ответственный за поиск пересечения с нужной улицей путем поиска таблички с названием улицы, чтения с нее назва

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

Единственное, что нужно компилятору, это имя функции, тип возвращаемых ею данных и типы данных ее аргументов. Если функция не должна возвращать никакого значения, как, скажем, функция повернуть() в предшествующем примере, ее следует объявить с типом void.

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

Следовательно, у функции поворота должны быть две переменные: направление и название улицы, на которую нужно свернуть. Это осложняет функцию, поскольку прежде чем поворачивать, нужно найти нужную улицу. Ниже приведен C-подобный псевдокод более полной функции поворота.

В этой функции есть участок, ответственный за поиск пересечения с нужной улицей путем поиска таблички с названием улицы, чтения с нее названия улицы и записи его в переменную название_следующей_ улицы. Поиск и чтение табличек продолжаются, пока не будет найдена нужная улица, после чего выполняются остальные инструкции для поворота. Теперь можно изменить псевдокод схемы проезда, введя в него эту новую функцию поворота.