Opened 5 years ago
Closed 5 years ago
#153 closed ожидается проверка (задача сдана)
WW #2
Reported by: | stotskiy.nikita | Owned by: | Egor Suvorov |
---|---|---|---|
Component: | WW_strings | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (5)
comment:1 Changed 5 years ago by
Owner: | changed from suvororv to Egor Suvorov |
---|
comment:2 Changed 5 years ago by
Owner: | changed from Egor Suvorov to stotskiy.nikita |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:3 Changed 5 years ago by
Ещё по корректности:
- У тестовых функций нет параметров => в сигнатуре должно быть
(void)
, иначе в языке Си это означает "любые параметры" (в C++ не так).
comment:4 Changed 5 years ago by
Owner: | changed from stotskiy.nikita to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 1.0 → 2.0 |
comment:5 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
По корректности:
- У тестовых функций нет параметров => в сигнатуре должно быть
(void)
, иначе в языке Си это означает "любые параметры" (в C++ не так). У вас этого нет в.h
-файлах. - Зависимости от заголовков в
Makefile
не соответствует реально включаемым заголовкам.test.c
не включаетstr.h
, но зависит от него.
Баллы за корректность:
- Ваши тесты проходят +1
- Корректный strcpy и тест +1
- Корректный strcat и тест +1
- Корректный strcmp и тест +1
- Корректный strlen и тест +1
По стилю 2/3:
- В тестах можно сравнивать прямо строковые литералы (они уже лежат в константной памяти, на них можно брать указатели), незачем их сначала класть в массив.
- Ставьте пробелы перед открывающей фигурной скобкой:
while (1) {
, а неwhile (1)
. - В
test_strcpy
вы сейчас копируете пустую строку поверхHELLO
. Вряд ли имелось в виду ровно это. Поэтому лучше сравнивать не переменные между собой, а переменную с какой-то константой, которая гарантированно (компилятором гарантированно) не меняется. - Лучше сравнивать
strcmp
не с-1
и1
, а на> 0
и< 0
, потому что функцияstrcmp
из стандартной библиотеки сейчас может не пройти ваши тесты (и при некоторых флагах не пройдёт). my_strcmp
можно упростить: там последние два ифа очень похожи на первые. На самом деле там можно вообще без ифов.
Note: See
TracTickets for help on using
tickets.
Корректность:
make clean
удаляет*.o
из текущей папки.test.c
включаетstr.h
.const
и/илиrestrict
в некоторых местах.my_strcpy
делает немного не то (идея верная)my_strcat
делает немного не то (идея верная)my_strcmp
делает совсем не то.Стиль:
while
по возможности используйтеfor
.my_strcmp
иmy_strlen
для проверки. Проверяйте прямо содержимое массивов напрямую.