Opened 5 years ago
Closed 5 years ago
#137 closed ожидаются исправления (задача сдана)
WW #2
Reported by: | Bagryanova Ekaterina | Owned by: | Sokolov Viacheslav |
---|---|---|---|
Component: | WW_strings | Version: | 2.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
В Стандарте описано возвращаемое значение. Это часть контракта функции.
comment:4 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
Реализацию my_strcmp можно упростить.
my_strcat делает не то, что требует Стандарт. Было бы здорово увидеть тест, который это поймает.
В test_str.c не хватает включение test_str.h
Стандарт описывает, что именно функция strcpy должна вернуть. Сейчас проверяется лишь, что утка крякает.
Реализацию test_strcmp можно упростить (и расширить!), используя char.
comment:5 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Цели, не соответстующие файлам на диске, стоит пометить как .PHONY. Чтобы понять, зачем это нужно, попробуйте создать рядом с Makefile файл
clean
и запустить последовательно make и make clean.size_t не обязан совпадать с unsigned int.
Лучше использовать одинаковое количество пробелов для разделения аргументов операторов, например, 1 пробел.
Функцию my_strcmp можно упростить - удалить некоторые строчки так, что программа не изменит поведение.
Лучше именовать не ans, а result, потому что у функции - возвращаемое значение.
В тестах неплохо бы проверить, что функции ведут себя в точности так, как от них требуется, в частности, возвращают именно то, что должны по Стандарту.
test_strcmp реализована некорректно: a * b может переполниться (вполне в соответствии со Стандартом). Лучше завести вспомогательную функцию, а проверку делать с помощью sign.
test_strcat модифицирует глобальное состояние, что есть плохо. Например, несколько запусков этой функции приведут к аварийному завершению программы.