[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