Aktywne Wpisy
trike +33
GrzegorzPorada +23
Kolejny wysryw na wykopie żeby nie chodzić z "kaszojadami" do restauracji. Jakbym miał słuchać wykopków to zamiast oswajać swoje dziecko z otoczeniem i uczyć pewnych zachowań to zamykałbym dziecko w beczce po kapuście i staczał do piwnicy. #rodzicielstwo
Dlaczego wartość zmiennej v nie została zmodyfikowana skoro została zmodyfikowana?
optymalizacja kompilatora, miejsce przechowywania symbolu v (rw, r itd a to zalezy od targetu, opcji linkowania itd). sprawdź co się dzieje na innych targetach, z innymi opcjami kompilacji.
dlaczego? bo to "undefined behavior".
po skompilowaniu masz takie coś:
push rbp
mov
tutaj ja nie do konca rozumiem dlaczego to nie dziala, ogolnie roznica z const a bez jest taka:
movl $5, -12(%rbp)
movl $10, -12(%rbp)
vs
movl $5, -12(%rbp)
leaq -12(%rbp), %rax
movl $10, (%rax)
Ja sie nie podejmuje wyjasnien dlaczego to drugie nie dziala, a debugowac mi sie nie chce bo od lat nie uzywalem gdb
movl $5, -12(%rbp)
leaq -12(%rbp), %rax
movl $10, (%rax)
cout:
movl $5, %esi
leaq _ZSt4cout(%rip), %rdi
call _ZNSolsEi@PLT
Czyli kompilator sobie zoptymalizował twój kod do czegoś takiego:
cout << 5 << " " << v;