Как делать на C (Си) функции с произвольным количеством аргументов • Live Coding
Автор: Olga Pavlova
Загружено: 2025-01-17
Просмотров: 1732
…а заодно и дебаггинг случился. Поэтому видео такое длинное. Баг нашли, всё кончилось хорошо :) Впредь урок и мне тоже — в конце концов, это же учебное видео.
Теперь по сути. Функция printf() умеет принимать сколько угодно аргументов — нам тоже надо! Сделаем. А чтобы не улетать в теоретический космос, напишем за час конкретный проект: микробиблиотеку для сборки менюшек программы на C. Ну там «Нажмите R, чтобы стартовать игру», такое.
Таймлайн:
00:00 — Вступление. Сегодня меньше теории, больше кода
01:20 — Тема: функции с произвольным числом аргументов
01:43 — Постановка задачи: динамическое меню
02:28 — Краткий обзор: будет конспект
03:04 — Начинаем кодить с нуля
03:48 — Репозиторий на GitHub, работа в отдельной ветке
04:19 — Цель: выполнение разных команд по вводу
05:00 — Заготовка функции, подключение библиотек
06:20 — Набор действий: удвоение, квадрат, смена знака
07:55 — Реализация функций действий
09:53 — Структура: указатели на функции
10:51 — Создание функций: dbl, sqr, print
12:30 — Превращение числа в строку
14:41 — План: действия по введённым командам
15:26 — Связка символов с функциями
16:27 — Создание библиотеки меню
18:08 — menu.h: структура пункта меню
20:12 — Структура Menu: массив пунктов и длина
21:59 — Создание псевдонима типа для пункта меню
23:10 — Указатель на функцию в структуре
24:46 — Связь символа с функцией через структуру
27:30 — Описание структуры Menu
30:17 — Хранение длины меню
32:12 — Объявление пунктов меню (d, p, s, q)
35:01 — Создание массива указателей на пункты
37:07 — Создание динамического меню
40:11 — Использование va_args для переменного количества аргументов
44:05 — Преобразование аргументов в массив
47:02 — Получение и обработка аргументов
50:15 — Добавление функций в массив
53:07 — Обработка команд: MenuProcess
56:04 — Поиск команды в меню
59:02 — Вызов функции из меню
1:01:01 — Главное: создание гибкого меню
1:03:07 — Подключение меню к main
1:06:09 — Парсинг строки: извлечение числа
1:10:01 — Финальная сборка
1:13:08 — Последние исправления
1:15:14 — Успешная компиляция
1:16:06 — Первые успешные вызовы функций
1:18:55 — Обработка ошибок: segmentation fault
1:23:00 — Диагностика проблем с памятью
1:34:51 — Финальное исправление: всё работает
1:36:09 — Итого: программа работает
1:41:33 — Ретроспектива: что пошло не так
1:47:06 — Советы: как не ошибиться снова
1:49:03 — Перспективы: использование макросов
1:52:02 — Объектный стиль: небольшие элементы
1:53:24 — Завершение стрима. Спасибо!
Конспект: https://github.com/olgapavlova/lectur...
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: