on GW2 Spvp
MMORPGITALIA Spvp Team Tournament Winner
S1 Legendary Division
S2 Legendary Division
S3 Legendary Division
S4 Legendary Division
è una questione di prestazioni e consumi; es: se aggiungo una birra in piu nel mio carrello della spesa eseguo un birra++, questo perchè ho altre cose da fare nell'arco della giornata ed inoltre ho il terrore della fila alla cassa, dall'altra parte la cassiera eseguirà un birra = birra +1 in quanto devo essere sicura dello scarico a magazzino, quest'ultima preferisce la sicurezza alle prestazioni.
Resta il fatto che la scelta è solo una questione di prestazioni, ogni singolo source deve contenere una buone dose di commenti(//), i quali lo rendono leggibile.
Si, ma attenzione, la domanda parlava di istruzione "più comunemente usata", non più performante, il che mi avrebbe portato a segnare la risposta "C) Fatti uno studio statistico se vuoi saperlo, io sono un ingegnere, non ti rispondo a caso"
Dilbert owna![]()
Tanek™: Game Designer & Algorithm Mastermind, Team Leader & SW Engineer and Dungeon Master!
"Datte Foco"™ and "Ma KITTESENCULA"™ are registered trademarks of Tanek Entertainment Inc.
"One of these days, scientists will discover that second X chromosome contains nothing but nonsense and twaddle." - Sheldon Cooper
Per non dimenticare:Spoiler
mi sfugge come sia più performante, è solo una questione di forma - ordine del codice.
hdr.
bnet profile
infatti, in linguaggio macchina è la stessa identica istruzione![]()
Tecnicamente, la differenza è la stessa tra queste due righe
++val corrisponde a val = val + 1;
val++ corrisponde a tmp = val; val = val + 1; return tmp;
Il POST-incremento, e bada bene solo quello, crea una variabile di copia perchè deve ritornare il vecchio valore della variabile, che non è più disponibile dopo l'incremento. Il postincremento quindi fa un'operazione di copia che, se non è esplicitamente richiesta, non è da utilizzare, da qui la risposta val = val+1.
Detto questo però, molti compilatori moderni, come ad esempio il gcc, possono capire dal contesto quando sia effettivamente necessario un postdecremento ed eventualmente sostituire il codice. Ecco ad esempio l'assembler delle due operazioni di pre e post incremento su MinGW-GCC 3.4.4:
x=++y;
x=y++;Code:0x004012e6 <pre+6>: lea 0xc(%ebp),%eax 0x004012e9 <pre+9>: incl (%eax) 0x004012eb <pre+11>: mov 0xc(%ebp),%eax 0x004012ee <pre+14>: mov %eax,0x8(%ebp)
Questo chiaramente solo per i tipi base.Code:0x00401316 <post+6>: mov 0xc(%ebp),%edx 0x00401319 <post+9>: lea 0xc(%ebp),%eax 0x0040131c <post+12>: incl (%eax) 0x0040131e <post+14>: mov %edx,0x8(%ebp)
EDIT: Al mio esame di Fondamenti di Informatica si veniva bocciati dicendo che le due cose sono identiche
Last edited by marlborojack; 17th April 2009 at 15:09.
Happiness in intelligent people is the rarest thing I know.
Beh ma la seconda è usata ovunque, quello che voglio dire io è che se ci sono 5 milioni di programmatori che usano la prima perchè sono comodi così e 1 milione di programmatori che usano la seconda perchè sono comodi così, indipendentemente da quali linguaggi usano e indipendentemente da quale sia più performante, la risposta alla domanda "Quale espressione per l'incremento e' comunemente utilizzato dai programmatori e Web developers?" è ovviamente la prima, ma deriva da uno studio statistico che la persona che deve rispondere alla domanda dubito che abbia a disposizione (e credo che non lo abbia nemmeno quello che ha fatto la domanda).
Ok sono pignolo e stracciacazzi, però a me ste domande così stupide fanno infervorarein che modo una domanda del genere può darti informazioni sulle capacità dell'esaminato?
Tanek™: Game Designer & Algorithm Mastermind, Team Leader & SW Engineer and Dungeon Master!
"Datte Foco"™ and "Ma KITTESENCULA"™ are registered trademarks of Tanek Entertainment Inc.
"One of these days, scientists will discover that second X chromosome contains nothing but nonsense and twaddle." - Sheldon Cooper
Per non dimenticare:Spoiler
No, questo conferma che ho letto ora il tuo reply perchè, dato che ovviamente sto lavorando e c'ho messo un po' a scrivere il mio, poi quando l'ho postato è apparso dopo il tuo, nonostante io non l'avessi letto
Aggiungo anche che questo conferma che tu non hai letto il mio reply, perchè non sto parlando affatto di performance ma del significato della domanda fatta.![]()
Tanek™: Game Designer & Algorithm Mastermind, Team Leader & SW Engineer and Dungeon Master!
"Datte Foco"™ and "Ma KITTESENCULA"™ are registered trademarks of Tanek Entertainment Inc.
"One of these days, scientists will discover that second X chromosome contains nothing but nonsense and twaddle." - Sheldon Cooper
Per non dimenticare:Spoiler
al mio esame di fondamenti di informatica studi i fondamenti dell'informatica non i compilatori
capito, hai ragione, la "colpa" è di come ci insegnano a programmare, se mi azzardo a fare un system.out.println(x++) per risparmiare una riga di codice mi tirano la testa contro il muro, il ++ lo ho sempre usato in sostituzione dell'assegnamento e bona sinceramente avevo trascurato la differenza tra pre e post (e meno male che lo avevo scritto sopra pure).
tanek, nel momento in cui consideri il post incremento come un caso particolare dell'incremento allora vai a dire che l'incremento classico è il più comune. Di fatto però il ++ viene di solito usato come semplice abbreviazione di caratteri e qui è statistica.
hdr.
bnet profile
Happiness in intelligent people is the rarest thing I know.
ribadisco come fondamenti di informatica io studi tutt'altra roba è_é
hdr.
bnet profile
ma si fa in fondamenti A la differenza tra ++val e val++ -.-°