Question 2.8

Perche` non si possono comparare strutture?


Non c'e` alcun singolo, buon modo per un compilatore di implementare comparazioni di strutture che sia consistente con l'approccio a basso livello del C. Una semplice comparazione byte-per-byte potrebbe fallire sui bit casuali presenti nelle ``buche'' inutilizzate nelle strutture (tali riempitivi sono utilizzati per mantenere un corretto allineamento dei campi successivi; vedere domanda 2.12). Una comparazione campo-per-campo potrebbe richiedere quantita` inaccettabili di codice ripetitivo per grandi strutture.

Se bisogna comparare due strutture, e` necessario scrivere del codice che lo faccia campo per campo.

Riferimenti: K&R2 Sez. 6.2 p. 129
ANSI Sez. 4.11.4.1 footnote 136
Rationale Sez. 3.3.9
H&S Sez. 5.6.2 p. 133


Leggere di seguito: prev prossima su cima


Questa pagina e` di Steve Summit // Copyright 1995 // mail feedback