Я понимаю, что для некоторых людей это нифига не новость, но я человек измученный нарзаном и уже лет 20, наверное, не смотрел, что-ж там компилятор такого нагенерил на выходе.Берём такой код (это rust, если что):
И компилятор на голубом глазу выдаёт:
Т.е. эта зараза тупо повыкидывала все эти пляски с +1 к переменной, и тупо нафигачила констант...
Я, конечно,неоднократно читал, что бодаться с нынешними компиляторами в плане кода - такое себе занятие, но что прям настолько всё сурово - как-то не ожидал.
fn main() {
let mut src = 1u128;
let a = src.to_ne_bytes();
src += 1;
let b = src.to_le_bytes();
src += 1;
let c = src.to_be_bytes();
println!("{:#?} {:#?} {:#?}", a, b, c);
}
И компилятор на голубом глазу выдаёт:
sub rsp, 152
mov qword ptr [rsp + 16], 0
mov qword ptr [rsp + 8], 1
mov qword ptr [rsp + 32], 0
mov qword ptr [rsp + 24], 2
movabs rax, 216172782113783808
mov qword ptr [rsp + 48], rax
mov qword ptr [rsp + 40], 0
Т.е. эта зараза тупо повыкидывала все эти пляски с +1 к переменной, и тупо нафигачила констант...
Я, конечно,неоднократно читал, что бодаться с нынешними компиляторами в плане кода - такое себе занятие, но что прям настолько всё сурово - как-то не ожидал.