В С и его производных термин «процедура» используется редко.В C есть функции, некоторые из которых возвращают значение, а некоторые нет.Я думаю, что это артефакт наследия C, где до введения void
в ANSI C не было способа , а не вернуть значение.По умолчанию функции возвращают int
, который можно игнорировать (можно по-прежнему) и может быть случайным числом, если не указано явное возвращаемое значение.
В семействе языков Pascal разница является явной, функции возвращаютценность и процедуры нет.В каждом случае для определения используется другое ключевое слово.Visual Basic также отличается от функций и подпрограмм (?).
Поскольку мы говорим об Objective-C, существуют некоторые дополнительные проблемы, которые могут сбить вас с толку.Функции, связанные с классом или объектом, называются «методами» (методы класса и методы экземпляра соответственно).
Также, если мы педантичны, вы не вызываете методы Objective-C, вы вызываете их, отправляя сообщение объекту.Различие на самом деле очень важно, потому что имя сообщения (он же «селектор») не обязательно всегда ссылается на один и тот же метод, оно может быть изменено во время выполнения.Это принципиально отличается от языков, таких как Java и C ++, где конкретное имя метода для определенного класса на самом деле является просто символическим именем для адреса блока кода, составляющего тело метода.