Кресты / Говнокод #17612 0 123456 static uint8_t const FREE = static_cast<uint8_t>(0); static uint8_t const USED = static_cast<uint8_t>(1); static char_t const * const THINKING = &"thinking"[0]; static char_t const * const HUNGRY = &"hungry "[0]; static char_t const * const EATING = &"eating "[0]; Из демы QP/C++ библиотеки. Вот в таком духе очень много кода. Индустриальщики, после перехода на С++, похоже очень сильно страдают по отсутствию pre-ANSI C какашек, и изобретают новые. Запостил: Dummy00001, 10.02.2015 (Updated 28.03.2018) Комментарии (8) RSS Dummy00001 12 лет ago # 0 вот еще типичный (не шучу) пример: //! helper macro for checking the global QS filter #define QS_GLB_FILTER_(rec_) \ ((static_cast<uint_fast8_t>(QP::QS::priv_.glbFilter[ \ static_cast<uint8_t>(rec_) >> 3]) \ & static_cast<uint_fast8_t>(static_cast<uint8_t>(1U << \ (static_cast<uint8_t>(rec_) & static_cast<uint8_t>(7))))) \ != static_cast<uint_fast8_t>(0)) Ответить Abbath 12 лет ago # 0 Dining Philosophers? Ответить Dummy00001 12 лет ago # 0 ⇈ да. жуткая дема возможностей библиотеки, где ни начала ни конца найти не возможно. но это не самое худшее что я там нашел. я перед от отходом домой, нашел в либе реализацию деления байта на 8 табличным способом... Ответить bormand 12 лет ago # 0 ⇈ > деления байта на 8 табличным способом static_cast<uint8_t>(rec_) >> 3 им уже не доставлял? Ответить TarasB 12 лет ago # 0 ⇈ А если комп троичный? Ответить bormand 12 лет ago # 0 ⇈ То на нём сишка не пашет по стандарту, увы. Ответить Dummy00001 12 лет ago # 0 ⇈ почему нет? просто компилеру нужно будет генерить код симулирующий правильное поведение. Ответить bormand 12 лет ago # 0 ⇈ Через таблицы и const_cast<>. Ответить Добавить комментарий Отменить ответ Из-за тебя ушел bormand, guest! А не использовать ли нам bbcode? [b]жирный[/b] — жирный [i]курсив[/i] — курсив [u]подчеркнутый[/u] — подчеркнутый [s]перечеркнутый[/s] — перечеркнутый [blink]мигающий[/blink] — мигающий [color=red]цвет[/color] — цвет (подробнее) [size=20]размер[/size] — размер (подробнее) [code=<language>]some code[/code] (подробнее)
Dummy00001 12 лет ago # 0 вот еще типичный (не шучу) пример: //! helper macro for checking the global QS filter #define QS_GLB_FILTER_(rec_) \ ((static_cast<uint_fast8_t>(QP::QS::priv_.glbFilter[ \ static_cast<uint8_t>(rec_) >> 3]) \ & static_cast<uint_fast8_t>(static_cast<uint8_t>(1U << \ (static_cast<uint8_t>(rec_) & static_cast<uint8_t>(7))))) \ != static_cast<uint_fast8_t>(0)) Ответить
Dummy00001 12 лет ago # 0 ⇈ да. жуткая дема возможностей библиотеки, где ни начала ни конца найти не возможно. но это не самое худшее что я там нашел. я перед от отходом домой, нашел в либе реализацию деления байта на 8 табличным способом... Ответить
bormand 12 лет ago # 0 ⇈ > деления байта на 8 табличным способом static_cast<uint8_t>(rec_) >> 3 им уже не доставлял? Ответить
Dummy00001 12 лет ago # 0 ⇈ почему нет? просто компилеру нужно будет генерить код симулирующий правильное поведение. Ответить
но это не самое худшее что я там нашел. я перед от отходом домой, нашел в либе реализацию деления байта на 8 табличным способом...
static_cast<uint8_t>(rec_) >> 3 им уже не доставлял?