Программирование на языке C. Урок 21. Функции. Правила построения и использования

preview_player
Показать описание
В уроке знакомимся с правилами построения и использования функций - минимальных блоков любой программы на С, отвечающих за модульность программы. На практических примерах рассматриваем объявления, определение и вызов функций.

Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам. Подробнее:

__________________________________________________
Вы можете помочь каналу через Яндекс-деньги:

или через банковскую карту:
4377 7237 6190 5714
__________________________________________________
Рекомендации по теме
Комментарии
Автор

Спасибо за интересное видео! Вот и пробираемся потихоньку в этом интересном языке программирования, и уже дошли до функций)))

dobroliub
Автор

Огромнейшее спасибо!
Еще не посмотрел, но уверен, что отличный и интересный материал!

AndySm
Автор

Int main {} как раз по правилам должен быть return 0 если нет ошибок. так что main не исключение из правил подтяните азы

srgsoft
Автор

Будет продолжение или это последнее видео?

ghebodne
Автор

Благодаря "кривому" переводу, лично я привык к объявлению функции (прототип), и реализации (определение). А потом выяснилось что это логически верно, а использование точных переводов часто приводит к путанице.
Вашего материала хватит для тёплого старта (когда новичок меняет написанное и проверяет что получилось), но явно недостаточно для самостоятельного написания функций.

Например вы обошли проблему видимости переменных - а это между прочим очень важно. Свойства, и тип аргументов функций - это тоже очень важно.
Возврат аргумента функции (return) - может применяться к переменной созданной в самой функции, а для этого её сначала необходимо создать.
Сама функция в месте применения и наличии возвращаемого значения - должна быть привязана к существующей переменной. Вызывать в пустоту - дурной тон. В случае применения функции в параметре другой функции - объявление переменной возврата выполняется в теневом режиме ( тип берётся из прототипа функции, имя переменной создаётся из имени функции и местоположения первого символа функции в тексте исполняемого файла (такая отсебятина получается...)). Теневое имя получается уникальным 1на миллиард, но всё-же иногда даёт сбой.

Кроме того есть фундаментальное отличие реализаций функций на ARM, и x86. Для ARM передача/приём аргументов всегда происходит через регистры. А для x86 - через стек. Но так как x86 появлялся на свет раньше - он задал правила для всех остальных языков и платформ. Пишем одинаково - исполняем про разному.

Но общий смысл в том что при вызове функции - оная сначала сохраняет в стек всё что может изменить (кроме return), а при выходе - восстанавливает. И всё это выполняется внутри тела функции!!! Вызывающая сторона смотрит только на объявление, и ничего не знает про реализацию. Это небольшое упрощение очень сильно сокращает время сборки кода.

avi-crakhome