Opened 5 years ago
Closed 4 years ago
#373 closed ожидается проверка (задача сдана)
WW #5
Reported by: | tarasov.denis | Owned by: | Sokolov Viacheslav |
---|---|---|---|
Component: | WW_c_io | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (5)
comment:1 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 5 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:3 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
static здесь лучше не использовать, потому что в многопоточной среде это повлияет на корректность. Кроме того, в месте вызова можно было бы освободить место на файловой системе и попробовать позвать этот метод еще раз, текущая реализация не допускает такого сценария.
Вообще глобальных состояний лучше избегать. Вот какая-то статья на эту тему https://habr.com/ru/company/mailru/blog/454946/ (быстро не смог найти ничего лучше), она вызывает некоторые вопросы, но кажется, что верхнеуровнево по делу написано.
Желательный способ обработки - вернуть код ошибки и уже в месте вызова определять, что делать дальше.
comment:4 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 2.0 → 3.0 |
Я не видел большого смысла в возврате ошибки из-за того, что эта функция используется в функции, которую мы кидаем в apply, в требованиях нам задана сигнатура таких функций -- они ничего не возвращают и применяются к каждой точке независимо. Поэтому в этом конкретном задании нам не обработать нормально ошибку и смысла в ней мало (конечно, в общем случае это разумно).
comment:5 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
ReadInt
: n может быть NULL?fputc может вернуть EOF (на диске место кончилось), эту ситуацию стоит обрабатывать.
34 *n = (c << 16) + (b << 8) + a;
технический момент: вместо + можно писать | , теоретически это может работать быстрее
Было бы здорово увидеть реализацию считывания с минимальным количеством копирования кода;
savebin, savetext также легко реализуются с помощью apply (и тоже хорошо бы избавиться от дублирования кода).
В случае
PointsCount
лучше результат хранить в типе size_t.В данный момент работает корректно (когда нет проблем с записью), это главное.