Opened 3 years ago
Closed 3 years ago
#245 closed ожидается проверка (задача сдана)
HW #1 (BMP)
Reported by: | Наталья Марцинковская | Owned by: | Святослав Власов |
---|---|---|---|
Component: | HW #1 (BMP) | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (5)
comment:1 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
- Все еще не получается считывать в одну строчку, не знаю уже, что делать
Остальное исправила
comment:3 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
Корректность 20/20, можешь бонус делать.
Стиль -- 5/10
- Зачем тебе функции
mem
иmem1
в заголовочных файлах? Ты же их не используешь нигде кроме bmp.c. По хорошему их нужно оставить в bmp.c и сделать к тому же статическими. В заголовочном файле должны быть только функции, которые ты используешь в разных файлах. Если функция внутренняя, сугубо "техническая", которая не должна вызываться ниоткуда снаружи, её нужно делать статической, чтобы не торчала во внешней линковке. - Именование. Имена функций и переменных должны быть говорящими, т.е. чтобы по их названию можно было догадаться, для чего они нужны и что делают, даже не смотря в их код. Как по названию
mem
иmem1
можно догадаться что эти функции делают и, главное, чем отличаются? У тебя эти функции выделяют память под массив, первая просто так, а вторая с выравниванием, то их можно назватьalloc_array
иalloc_array_with_padding
, если кажется слишком длинно, можно сократить доalloc_arr
иalloc_arr_padded
. То же самое переменнаяpixel
. Я бы подумал, что это структура данных где хранится пиксель. Но нет, это размер пикселя в байтах. Так назови еёpixel_size
. - Код, где ты аллоцируешь сначала массив указателей, а потом на каждый указатель -- еще массив, копипастится из функции в функцию, что как бы намекает, что неплохо было бы его перенести в функцию с названием
(нет, неmem2
)allocate_matrix
(илиalloc_mat
). - Подумай всё таки над тем как читать и писать строку целиком. У тебя ведь не возникло проблемы с тем, чтобы выделить память под строчку нужного размера -- так в чем проблема прочитать в эту память то же количество байт из файла?
comment:4 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 2.0 → 3.0 |
Бонус попыталась сделать, но не получается.
Стиль исправила вроде бы кроме опять 4, потому что там единственный нормальный вариант - записать после каждого третьего байта нули и потом только считывать в строчку, но тогда возникнут проблемы в другом и плюс это будет более громоздко и сложно, чем сейчас.
Note: See
TracTickets for help on using
tickets.
Корректность 15/20
Стиль -- 3/10
bmp.h
ты используешь типы данныхuintXX_t
, которые объявлены вstdint.h
, но почему-то его не подключаешьload_bmp
? В других местах ты без проблем юзаешьsizeof
, что тут пошло не так?BMP->bitCount
.assert
, а возвращатьNULL
из функций, то позаботься о том, чтобы у тебя все ресурсы выделенные внутри функции освобождались. У тебя этого не происходит. Или падай наassert
.shift
прекрасно можно посчитать формулой, не нужно делать это в цикле.