linux user group brescia

immagine del castello

Archivio della mailing list

VERO bitmap

Giuseppe Corbelli cowo a lugbs.linux.it
Mer 7 Maggio 2003 20:51:59 UTC
On Wed, May 07, 2003 at 07:57:22PM +0200, Vernia Damiano wrote:
> 
> 	Ciao, alcune strutture dati del mio programma si possono 
> immaginare in due versioni:
> 1. Una lista linkata in avanti e all'indietro.
> 2. Una lunga stringa di bit.
> 	Devo poter identificare qualche migliaio di oggetti, quindi ogni 
> la elemento della lista linkata conterrebbe un "unsigned short" e due 
> puntatori. Al contrario la stringa di bit sarebbe "staticamente" lunga 
> quanto la cardinalita' massima dell'insieme.
Non si puo' fare un array? L'overhead dei puntatori e' alto.

> 	Quanto occupa REALMENTE UN elemento della lista linkata? in 
Dipende mica dall'allineamento del compilatore? Allinea alla dimensione
della word, no?

> apparenza 2+4+4 byte (80 bit), ma (e per questo non penso di essere 
> totalmente OT...) le strutture che mantengono l'allocazione "vera" in 
> memoria di quell'elemento?
> 	Cosi' mi faccio una stima dell'occupazione e vedo cosa 
> implementare al variare della lunghezza attesa della lista.
Per me ti servono 12 byte.

> 	Secondo problema, collegato. Leggendo gli header delle librerie mi 
> e' parso di capire che per "long" si intende 32 o 64 bit a seconda del 
> processore per il quale si compila. PII e Athlon? Conviene, secondo quanto 
Per gli intel compatibili 32 bit e' sempre 32 bit.

> conoscete dell'implementazione delle librerie e dei processori PII e 
> Athlon usare il tipo di dato "long long" (che a quanto pare non e' poi 
> cosi' standard C)? Io ci devo fare solo operazioni binarie: AND e OR (e 
> forse XOR).
Non ne ho idea. Ma ti servono certi numeri?

-- 
        Giuseppe "Cowo" Corbelli ~\/~ My software: http://cowo.yoda2000.net
  -<! Desasters in our century: Hiroshima 45, Cernobyl 86, windoze95 !>-



Maggiori informazioni sulla lista Lug