- 1
- 2
#define BYTEMAX 0xFF
#define BYTEOVERFLOW (BYTEMAX+1)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+69
#define BYTEMAX 0xFF
#define BYTEOVERFLOW (BYTEMAX+1)
C++ вокруг. Интересует насколько это вменяемая практика?
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
> #define BYTEMAX
> вменяемая практика?
Сам-то как думаешь?
1. литерал 0xff должен иметь тип знакового целого, байты обычно беззнаковые. Сравнивать их не айс.
Далее, 0xff + 1 будет 0x100, что не будет равняться "переполненному" байту 0x0, т.к. типы при сравнении расширяются.
2. За максимальными значениями можно лезть в <limits> или my_uint(-1).
Как используется BYTEOVERFLOW?
Поиск нашел вот это и ещё несколько похожих.
Как мне кажется BYTEOVERFLOW в трех строчках из пяти взят с потолка.
В цикле проверка for(...;i<BYTEOVERFLOW;...)
допустим, тебе надо пройти все [0..255] = 256 элементов
это значит, тебе нужен счетчик [0..256] - т.е., как минимум, short, чтобы писать цикл, как мужик, с одним единым телом иначе, придется писать как членодевка
у кого так подгорело?
Царский вариант:
ибо царь знает наверняка с какими типами он работает и ему не ссыкотно отдавать код младшим на донашивание
ps: глупые боты, все их посты потрутся одной командой тупо по упоминанию [email protected]
тащемта, ладно уж страйко, где хотя бы люр?
увяз в пучине киевских любовных утех?
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
И, смеясь над автором говнокода, автор осознаёт, что каждый день он пишет то же самое.
Алсо я смеюсь не над r=f(); return r; вместо return f();, а над тем, что человек вообще не допер что к чему, вроде примера, где некто писал на Yii как на обычном php, или над мозголомающими примерами из языков вроде goto вовнуть цикла.
Обращаться: [email protected]
К тому же, раз уж речь идет о крестах, почему не std::numeric_limits? Хоть я к крестам довольно скептически отношусь, numeric_limits - классная штука.
Я так понимаю, с ними есть одна проблема. std::numeric_limits<T>::max() - статическая функция, следовательно, в c++03 нельзя использовать её результат для задания размеров массивов. В c++11 вроде догадались сделать её constexpr.
|======================================= ===|
| ТАРАСБЕР ПРЕДЛАГАЕТ УСЛУГИ ДЛЯ ПАРНЕЙ |
|======================================= ===|
Обращаться: [email protected]
|======================================= ===|
| ТАРАСБЕР ПРЕДЛАГАЕТ УСЛУГИ ДЛЯ ПАРНЕЙ |
|======================================= ===|
Обращаться: [email protected]
|======================================= ===|
| ТАРАСБЕР ПРЕДЛАГАЕТ УСЛУГИ ДЛЯ ПАРНЕЙ |
|======================================= ===|
[code] Миньеты с проглотом, взаимная дрочка, возможен анал в группе
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]
Обращаться: [email protected]