Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
А, просто не сразу понял что Вы о файле говорите. Файл прост как пень, первый байт означает что изображение в формате RGB(Red,Green,Blue) - 0x0 или ARGB(Alpha, Red, Green, Blue) - 0x1, потом идут два 32-ух битных числа(4 байта) - ширина и высота, а потом пиксели изображения в формате 0xRRGGBB или 0xAARRGGBB.
Не понимаю зачем в c++ коде использовать функции из Си?
И не понятно что делает эта функция. Вернее что делает понятно, но результаты её так и остаются внутри. Не отдаваясь не через return, и нн неявно. А если изменяется какой-то глобальный метод, то это уже сильно, так как не вижу что функция в классе, а хранить и изменят глобальные переменные это слишком. Ладно если бы изменялись члены класса, но не так же.
+ когда это в cpp был сборщик мусора? Наверно нужно очищать всё что намусорили, а не оставлять все на съедение стёка.
Код на C++ с функциями из C в стиле C# 🙂
Зачем там в цикле *rgb = malloc() каждый раз делается? Если уж хочется скушать памяти, можно это сделать как-то так:
Будущие пользователи у меня еще не скоро буду, для этого как минимум нужно кончить учиться, и на работу устроиться. И к тому же в этом проекте так много говна изза того что до этого я писал исключительно на C#, вот с непривычки и наговнокодил.
вот если бы в этом коде не было такого огроменного количества копипасты (иногда тормозной, а игногда просто противной) и было бы по-меньше вольшебных чисел -- кого был бы впринципе читаем.
Плюс 1 за скобки.
Но вот давеча поговорил с тимлидером, он приверженец одной точки выхода.
Но завтра если не забуду, запощу, что у нас есть на эту тему.
ЗЫ. Color это клас.
строки 10..13 бездельничают
тем более, что статические массивы - это безусловное зло.
а что за хрень: ведь <b> есть указатель, т.е. если или другими словами malloc() не смог выделить байт памяти, то юзать malloc() опять? хитро
И не понятно что делает эта функция. Вернее что делает понятно, но результаты её так и остаются внутри. Не отдаваясь не через return, и нн неявно. А если изменяется какой-то глобальный метод, то это уже сильно, так как не вижу что функция в классе, а хранить и изменят глобальные переменные это слишком. Ладно если бы изменялись члены класса, но не так же.
+ когда это в cpp был сборщик мусора? Наверно нужно очищать всё что намусорили, а не оставлять все на съедение стёка.
Зачем там в цикле *rgb = malloc() каждый раз делается? Если уж хочется скушать памяти, можно это сделать как-то так:
, а уже циклами по массиву бегать.
чувак, мой тебе искренний совет: пожалей своих будущих пользователей и тех, кто будет потом твой код ковырять: смени профессию
Учиться надо, а не рубить на корню.
Бейсику и Паскалю совсем не учили?
ЗЫ. Меня никто не учил, сам все делал.
Копипастить можно и в пределах одной функции.
>учусь я исключительно на своих ошибках
Лучше всё же на чужих, их больше.
У каждого свое мнение. Я считаю что лучше на своих ошибках учиться.
Сколько раз у Вас написана эта строчка "(*(ibuf + sizeof(int) - 1) << (8 * 3))" ?
И такого там очень-очень много.
Кроме того между открывающей и закрывающей скобкой не должно быть более 20 строк.
Уберите волшебные числа типа 3.
Я на сях давно не писал, и глаз у меня уже не тот, но мне кажется что не всю память, забранную у кучи mallocом Вы ей возвращаете.
В сях нет гарбич коллектора, и рано или поздно память утечет.
Но вот давеча поговорил с тимлидером, он приверженец одной точки выхода.
Но завтра если не забуду, запощу, что у нас есть на эту тему.
лучший рефактроинг тот -- в результате которого файлы только удалились
собственно мой вариант
[spoiler]
[/spoiler]
Эй, Создатель, нужен тег СПОЙЛЕР срочно!
Размеры могут быть и 0-ми в хедере, не советуй больше.