Opened 5 years ago
Closed 5 years ago
#274 closed ожидаются исправления (задача сдана)
WW #3
Reported by: | stotskiy.nikita | Owned by: | stotskiy.nikita |
---|---|---|---|
Component: | WW_intrusive_list | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (6)
comment:1 Changed 5 years ago by
Owner: | changed from Egor Suvorov to stotskiy.nikita |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 5 years ago by
Owner: | changed from stotskiy.nikita to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 1.0 → 2.0 |
comment:3 Changed 5 years ago by
Owner: | changed from Egor Suvorov to stotskiy.nikita |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Корректность 7.5/8:
- Если скормить на вход длинную команду (длиннее 239 символов), то будет несколько раз выведено
Unknown command
. - Подключайте
<stdio.h>
не вclist.h
(он ему не нужен), а в каждом файле, в котором есть ввод-вывод. Зато вclist.h
следует подключить<stddef.h>
вместо остальных файлов, потому что именноclist.h
объявляет макросcontainer_of
, которому нуженoffsetof
.
Стиль:
- В
remove_point
запускайте макросcontainer_of
не три раза, а только один. Сделайте переменную. - Не надо брать вызов макроса
container_of
в скобочки. - Объявляйте переменные в самом вложенном месте, где они в первый раз нужны. Например,
fpoint
,a
иb
- А ещё
a
иb
— плохие названия для X/Y-координат точки. - В
main
сделайте обработку каждой команды на отдельной строке и поставьте там фигурные скобки у всех ифов, чтобы команды обрабатывались абсолютно одинаково. - Вместо
if (strcmp() == 0)
лучшеif (!strcmp())
- Незачем инициализировать
char input[240]
input
-->command
comment:4 Changed 5 years ago by
Owner: | changed from stotskiy.nikita to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 2.0 → 3.0 |
comment:5 Changed 5 years ago by
Owner: | changed from Egor Suvorov to stotskiy.nikita |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Сначала доставил стиль в версии 1180, которая проверялась раньше: 3/4, итого 10.5/12.
Теперь проверка последней версии 1464 (дорешивание).
Корректность есть на 8/8.
По стилю те же 3/4:
- Поехали табы/пробелы (например, в последних строчках
main.c
). Пройдитесь автоформатированием. - Ставьте пробел между
)
и{
. Тоже лечится автоформатированием. - Лучше не
return 0;
в командеexit;
, аbreak
. Аremove_all_points
сделать за пределами цикла. Так будет симметричнее: в началеmain
список инициализируем, в конце — освобождаем. - Объявите переменные
x
иy
в самом вложенном месте. Не внутри цикла, а внутри каждого из ифов. И их не надо инициализировать. - Объедините два подряд идущих
printf
в один. point *fpoint; fpoint = ...
замените наpoint *fpoint = ...
.fpoint
— не очень ясно, что такое "f". Лучшеpoint
илиcur_point
илиpt
.- Сократите размер буфера. Максимальная длина команды — 5, т.е. надо считывать хотя бы шесть символов (чтобы отличить
print
от неизвестногоprintt
), значит, размер буфера — 7.
comment:6 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Если хотите дорешать — переоткрывайте.
Note: See
TracTickets for help on using
tickets.
Корректность:
print
выводит лишние запятые и пробелы в конце строчки.По стилю:
printf("%s", "foo");
лучше заменить наprintf("foo");