Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#186 closed ожидается проверка (задача сдана)

WW_c_io sysoev.sergej

Reported by: Sergey Sysoev Owned by: Дмитрий Лапшин (lapshin)
Component: WW_c_io Version:
Keywords: Cc:

Description


Change History (7)

comment:1 Changed 3 years ago by Дмитрий Лапшин (lapshin)

Owner: changed from Дмитрий Лапшин (lapshin) to Sergey Sysoev
Type: ожидается проверкаожидаются исправления

Слегка нарушен формат вывода.

Всё-таки ты более прокаченный человек, раз сделал через union. Только зачем эта структура в заголовочном файле? Кстати где static?

Мне не очень нравится тут фиктивное значение в качестве результата чтения. Хотелось бы ещё константы про байт использовать.

А так хорошо, 8/10 плюс будет бонус.

comment:2 Changed 3 years ago by Дмитрий Лапшин (lapshin)

Хотя подожди. Как union поможет с конвертацией числа? Да, ты так прочитаешь байты обязательно положив их в порядке слева направо, но в этом плане ровно также работает fread/fwrite на всё число: если в памяти оно было Big Endian тебя ждёт печаль.

comment:3 Changed 3 years ago by Sergey Sysoev

Owner: changed from Sergey Sysoev to Дмитрий Лапшин (lapshin)
Type: ожидаются исправленияожидается проверка

Не нашёл где у меня нарушен формат вывода...

Про union я нагуглил и забыл про endianness, хотел решить это макросами(по разному задефайнить union в зависимости от платформы), но потом нагуглил сколько существует endian'ов и решил сделать через ntohl/htonl. Он мультиплатформенный, но если не подходит, его можно заменить кучей битовых сдвигов.

static'и расставил.

С фиктивным значением поступил так, как вы посоветовали на практике.

255 заменил на UINT8_MAX.

comment:4 Changed 3 years ago by Дмитрий Лапшин (lapshin)

Owner: changed from Дмитрий Лапшин (lapshin) to Sergey Sysoev
Type: ожидается проверкаожидаются исправления

Формат вывода на экран всё ещё слегка лажает. Видимо ещё с бонусом перестарался, там что-то не так и ломается. И валгринд орёт. Оч плохо.

#ifdef _WIN32
#include <winsock.h>
#else
#include <arpa/inet.h>
#endif

У тебя нет случаем родственника по имени Игорь?) Я зачту такой способ конвертации, хотя он крайне забавен.

comment:5 Changed 3 years ago by Sergey Sysoev

Owner: changed from Sergey Sysoev to Дмитрий Лапшин (lapshin)
Type: ожидаются исправленияожидается проверка

Я ещё раз перерыл все места, где я вывожу на экран и не нашёл где я могу нарушать формат вывода.
Даже при отсутствии точек он просто выводит пустую строку и перевод строки.

С бонусом я наигрался и переписал теперь нормально. Valgrind орать перестал.
А про Игоря я не понял...

comment:6 Changed 3 years ago by Дмитрий Лапшин (lapshin)

Resolution: задача сдана
Status: assignedclosed

Раз не понял то прости меня, просто есть весьма успешный сетевой программист—администратор Игорь Сысоев, а я смотрю тебя тоже в сетевой код занесло.

У меня в чекере была бага. 12.

comment:7 Changed 3 years ago by Sergey Sysoev

А, это про создателя nginx?)
Не, не родственники. Я просто искал какой-нибудь дурацкий мультиплатформенный способ не писать 4 строчки и нашёл его в сетевой библиотеке

Note: See TracTickets for help on using tickets.