the joys of C |
[Mar. 4th, 2016|06:11 pm] |
а вы знаете, что любой кусок кода, который содержит нижеследующее, может быть смело редуцирован в ничто?
unsigned char b; ... всякая фигня ... ...(b<<24) поясняю. «вдвигание» единицы в знаковый бит в цэ не определено. b по сишным правилам получает повышение до int. b может быть больше 0x7f. вуаля: undefined behavior. поэтому весь код до и после сдвига может быть смело выкинут компилятором на помойку, потому что его поведение тоже не определено. такое выкидывание не нарушает никаких правил и стандартов.
а мораль сей сказки простая: пойдите и поищите, нет ли у вас в коде такого сдвига без кастов в беззнаковое. есть? поздравляю, ваша программа — непортабельное дерьмо.
так что пишите на си, зайчики! видите, как легко на нём писать программы, которые потенциально можно оптимизировать в ноль инструкций? заодно можете спросить про этот код у очередного долбоёба, который начнёт вам рассказывать про «портабельность сишечки». потом смачно повозите его ебалом по его же говну и пиздюлями прогоните из своего дома. |
|
|
... |
[Mar. 4th, 2016|09:08 pm] |
очень кушать хочется. пойду, посплю недельку-другую, помогает, говорят. авось похудею. |
|
|