Commit a713f2ef authored by Igor Zhirkov's avatar Igor Zhirkov
Browse files

Update README.md

parent 9f97aa3e
......@@ -161,32 +161,9 @@ struct bmp_header
в отдельный модуль. Часто его называют `util.c` или как-то похоже.
# Для самопроверки:
- Функции должны получать все необходимые им данные через аргументы.
- Глобальные переменные запрещены.
- Сообщения об ошибках должны выводиться в `stderr`. Общее правило: результаты вычислений — в `stdout`, информация о том, *как* происходят вычисления — в `stderr`.
- Нельзя смешивать логику вычислений и ввод-вывод.
- Нельзя использовать `typedef` для определения структур ([объяснение](https://stepik.org/lesson/408350/step/2)), кроме структур из одного поля, которые являются аналогом `typedef`, но без неявных преобразований.
- Ваш код должен компилироваться с флагами `-std=c18 -pedantic -Wall -Werror` (gcc) или `-std=c18 -pedantic -Wall -Werror` (clang).
Пользователям MS Visual Studio придётся тяжко, поддержка C11/C17 пока есть только в [Visual Studio 2019 version 16.8 Preview 3](https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-arriving-in-msvc). Установите флаги `/W4` (warning level 4) и `/WX` (warnings as errors).
Можете попробовать использовать [`cl-clang`](https://clang.llvm.org/docs/MSVCCompatibility.html).
Проверять Ваш код мы будем с помощью `gcc` и `Makefile`.
- Типы:
- Проверьте, что вы максимально возможным образом расставили `const`.
- Проверьте, что индексы используют только тип `size_t`.
- Проверьте, что вы используете только платформо-независимые типы, такие, как `int64_t` или `int_fast64_t`.
- Проверьте, что вы используете правильные спецификаторы ввода и вывода.
- Вы можете добавлять любое число вспомогательных функций для удобства, это поощряется.
- Проверьте архитектуру. **Решение внутри одного файла приниматься не будет**.
Думайте о том, как бы вы хотели организовать код, чтобы легко добавлять входные форматы (не только BMP) и трансформации (не только поворот на 90 градусов).
# Для самопроверки
- Прочитайте [правила хорошего стиля](https://gitlab.se.ifmo.ru/c-language/c-code-guidelines/-/blob/master/README.md). Ваше решение должно им соответствовать.
- Архитектура: думайте о том, как бы вы хотели организовать код, чтобы легко добавлять входные форматы (не только BMP) и трансформации (не только поворот на 90 градусов).
- Пожалуйста, присылайте решение в виде pull-request. [Инструкция](https://gitlab.se.ifmo.ru/cse/main/-/wikis/%D0%9A%D0%B0%D0%BA-%D0%BF%D0%BE%D1%81%D0%BB%D0%B0%D1%82%D1%8C-%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B0-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D1%83). В крайнем случае допускается ссылка на репозиторий на https://gitlab.se.ifmo.ru или https://github.com .
- Не забудьте написать `Makefile`. Он должен позволять при изменении одного `.c` файла пересобрать часть проекта не пересобирая всё остальное.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment