[cdev] задача 4, 135гр
Grigoriy A. Sitkarev
sitkarev на komitex.ru
Ср Дек 1 23:30:22 MSK 2010
Девочки, а вы вообще его проверяли?
Дело в том что многовато предупреждений и довольно сомнительного кода,
который кстати и не компилируется :(
Вам бы надо написать проверки, где вы каждую функцию попробуете. Мы же с
вами это делали в main() и она у вас была. В самой реализации её конечно
быть не должно, т.к. это часть библиотеки, но себе то вы же можете её
оставить или сделать в другом файле и линковать с task4.o.
Если бы у вас тесты были написаны в test.c то вы бы это делали примерно так:
$ gcc -c -Wall -o task4.o task.c
$ gcc -Wall -o test test.c task4.o
Компилировать вручную всегда довольно утомительно, я бы написал Makefile
и собирал бы потом одной командой:
$ cat Makefile
CFLAGS = -Wall
LDFLAGS =
CC = gcc
TARGET = test
OBJS = task4.o test.o
HEADERS = parray.h
all: $(TARGET)
$(TARGET): $(OBJS) $(HEADERS)
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $(OBJS)
clean:
rm -rf *~ $(OBJS) $(TARGET)
$ make
При компиляции с -Wall я получаю предупреждения, которых быть не должно
(это практически ошибка). И в 221-й линии есть ошибка.
$ gcc -Wall -o task4 task4.c
task4.c: In function ‘parray_get_nth’:
task4.c:161: warning: ‘return’ with no value, in function returning non-void
task4.c: In function ‘parray_sort’:
task4.c:212: warning: ‘return’ with a value, in function returning void
task4.c: In function ‘callback’:
task4.c:220: warning: format ‘%f’ expects type ‘double’, but argument 2
has type ‘int’
task4.c:221: error: expected ‘;’ before ‘return’
task4.c:222: warning: control reaches end of non-void function
task4.c: In function ‘parray_foreach’:
task4.c:231: warning: return makes pointer from integer without a cast
task4.c:234: warning: control reaches end of non-void function
В функциях где вы делаете memmove(3) мне кажется стоит перепроверить ещё
раз пересчёт количества байтов перемещаемых, потому что они вызывают
подозрения. Об этом и Егор пишет, прочтите его внимательно тоже.
Осталось вам совсем чуть-чуть. Сделайте мне приятное!
--
Г.А.
Ксения Оботурова пишет:
> Григорий Александрович, Убрала свой глупый then.
>
Подробная информация о списке рассылки cdev