Non farebbe alcuna differenza nel codice generato per qualsiasi compilatore scritto con competenza.
Almeno quando l'ho fatto, l'ho fatto perché sembrava un'attività relativamente minore, e non volevo che distrasse dal resto del codice.
Alcuni pensano che un po 'di curiosità sia interessante. In PL / I puoi anche scrivere un codice come:
A = B = 0;
Alcuni potrebbero trovare il risultato di questo un po 'sorprendente però. PL / I non ha richiesto l'uso di (per esempio) =
per l'assegnazione e ==
per il confronto. Invece, in un certo senso ... ha indovinato cosa intendevi per un uso particolare di =
. Quindi, se avevi qualcosa come if a = b
, lo considerava come un confronto, ma se avevi a = b;
lo trattava come un compito.
Nel caso di A = B = 0;
le cose sono solo un po 'strane: ha trattato il primo =
come un compito, ma il secondo come confronto. Quindi, confronta B a 0 e (come C) produce 0 per falso e 1 per vero. Quindi assegnerebbe quel numero intero che rappresenta Booleano ad A. Come risultato, dopo aver eseguito A = B = 0;
potremmo essere certi di una cosa: A sarebbe non uguale a B. Se B fosse 0, allora A sarebbe 1 e se B non fosse uguale a 0, allora A sarebbe uguale a 0.
Potresti comunque ignorare la sua ipotesi, quindi A := B := 0;
ha assegnato 0 a entrambi A e B.