Class project for C-language lessons, Prosoft Developer School 2022
Проект предназначен для тривиальной реализации структуры данных стек в учебных целях.
В проект включена статическая библиотека cstack
, написанная на C и реализующая структуру данных.
Для библиотеки определен интерфейс (API) в виде набора прототипов функций в файле
cstack.h.
В файле cstack.c
содержатся пустые определения этих функций.
Вам необходимо дополнить эти определения таким образом, чтобы библиотека удовлетворяла требованиям
технического задания.
В проекте используется система сборки cmake.
Это одна из самых популярных систем сборки для проектов на C/C++.
Поддержка cmake
имеется во многих популярных IDE (Visual Studio, QtCreator и др.).
Сборка проекта описана в файле
CMakeLists.txt.
Порядок сборки проекта с примерами в разных средах разработки описан в
этом разделе.
Подробнее о системах сборки
тут
и тут
(порядок важен).
Имеется возможность (по-умолчанию отключена) собрать исполняемый файл для ее тестирования
(test.cpp).
Для включения теста в сборку проекта необходимо сконфигурировать cmake
с включенной опцией WITH_TEST
.
Код теста написан на C++, используется библиотека GoogleTest.
Тест будет собран с использованием
санитайзеров.
gcc
илиclang
— компиляторы C/С++.cmake >= 3.22
— генератор скриптов сборки make/Ninja/etc.gtest
(опционально) — библиотека для написания модульных тестов.
Понадобится также система сборки (make/Ninja/etc) по выбору.
Корпоративная почта: [email protected]
Telegram: @czert
Не все разделы документации обязательны для ознакомления, если обсуждаемые в них темы вам уже знакомы. Более того, некоторые из тем носят чисто факультативный характер.
- Описание структуры данных стек. Если вы не знаете, как работает стек, то этот раздел к прочтению обязателен.
- Техническое задание. Содержит непосредственно техническое задание и требования к реализации (единственная по-настоящему обязательная часть сопровождения), подсказки к написанию кода библиотеки и пошаговая инструкция выполнения домашнего задания. Процесс сдачи и оценивания ДЗ основан на работе с системой контроля версий Git и платформой GitHub, так что требования к работе с этими инструментами также являются частью технического задания. Другими словами, строго придерживаемся пошаговой инструкции и не присылаем мне код на почту :smiling_face_with_tear:.
- Инструкция по сборке. В этом разделе пошагово со скриншотами воспроизвожу сборку проекта без тестов и с ним для командной строки Linux, в Visual Studio и QtCreator. Для VSCode с расширениями инструкции нет, поскольку набор расширений у каждого индивидуальный, и универсальную инструкцию сделать невозможно.