G
enby!

19. Процедурное программирование. Функции и стекфрейм. Часть 1 [Универсальный программист]

#программирование #стек #stack #stackframe Сегодня вы узнаете, что такое вызовы функций, рекурсия, стек и кадр стека, фрейм пойнтер, пролог и эпилог, трассировка стека, соглашение о вызовах, инъекция кода и стековая канарейка. Плейлист Универсальный программист:    • Универсальный программист   Плейлист Реальный код:    • Реальный код   Вы можете помочь развитию канала, подписавшись на Patreon:   / unicoder   или Boosty: https://boosty.to/unicoder
или переведя любую сумму на карту: 5536 9140 0276 0019 или Bitcoin: 3Cb8Jb8cZNeiMx1saUPfb2JxBwQRYYbuGF Также смотрите меня в Дзене: https://dzen.ru/unicoder
Тайминги: 00:00 Зачем нужны подпрограммы 01:05 Процедуры в Pascal 01:33 Параметры и аргументы 01:58 Как происходит вызов 02:23 Опциональные параметры 02:54 Функции в Pascal 03:11 Сигнатура функции 03:51 Функции в C-подобных языках 04:34 Функции в Rust 04:57 Unit как аналог void 05:14 Задача 06:15 Never type в Rust 07:31 Рекурсия 08:38 Подробнее, как происходит вызов функции 11:13 Стек 13:21 Стекфрейм 17:19 Фрейм-пойнтер 19:05 Фрейм-пойнтер не нужен 19:27 Пролог и эпилог 20:09 Динамический стекфрейм 21:42 Стек в других архитектурах 22:27 Соглашения о вызовах 24:33 Инъекция кода 25:45 Стековая канарейка 26:26 Альтернативы канарейке 26:54 Финал

Смотрите также