Opened 5 years ago
Closed 4 years ago
#376 closed ожидается проверка (задача сдана)
WW #5
Reported by: | Gleb Marin | Owned by: | Sokolov Viacheslav |
---|---|---|---|
Component: | WW_c_io | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (3)
comment:1 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:3 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
147 fread(x_bytes, 3, 1, input); 148 fread(y_bytes, 3, 1, input);
здесь корректнее было бы 1, 3
read_bytes сейчас реализован не совсем некорректно, если input пустой (исполнение зайдет внутрь while (!feof(input))
и будет произведена попытка записи from_3_to_4_bytes
, хотя массивы инициализированы мусором). valgrind ругается.
В main много дублирующегося кода
В print-функциях для apply можно было бы возвращать статус printf, да и в read можно было бы обработать ошибки чтения
Note: See
TracTickets for help on using
tickets.
Нужно проверить, что указатели ненулевые.
write_bytes , write_text желательно реализовать через apply.
Нужно поправить на допбалл:
fprintf / fwrite может не получиться, если на файловой системе место кончилось.
Нужно как-нибудь специфицировать поведение программы в таком случае - как минимум сообщать об этом с помощью кода возврата. Для этого стоит либо поменять сигнатуру apply (протащить возможность рапортовать ошибку), либо использовать exit. Кроме того, стоит решить, что делать с частично записанными данными - либо оставить, как есть, либо удалить файл целиком, либо оставить только успешно записанные точки, но в любом случае поведение должно быть донесено до конечного пользователя утилиты либо комментарием в main, либо дописать в --help.
1) стоит вынести операцию в отдельную функцию (чтобы не дублировать)
2) здесь явно используется способ представления знакового числа, что не соответствует текущей версии Стандарта языка (не гарантируется). Желательно привести в соответсвтие со Стандартом.
Фрагмент
повторяется много раз, стоит с этим что-нибудь сделать (вынести в отдельную функцию / макрос)
На мой взгляд ключевое, на что Вам сейчас стоит обращать внимание - это как бороться с дублированием кода, повышать модульность, переиспользуемость кода.
В данный момент работает, как требуется.