Condividi tramite


Modelli di dati astratti

Ogni applicazione e ogni sistema operativo ha un modello di dati astratto. Molte applicazioni non espongono in modo esplicito questo modello di dati, ma il modello guida il modo in cui viene scritto il codice dell'applicazione. Nel modello di programmazione a 32 bit (noto come modello ILP32), i tipi di dati integer, long e puntatore sono di 32 bit. La maggior parte degli sviluppatori ha usato questo modello senza rendersene conto. Per la cronologia dell'API Win32, questo è stato un presupposto valido (anche se non necessariamente sicuro) da fare.

In Windows a 64 bit, questo presupposto di parità nelle dimensioni dei tipi di dati non è valido. La creazione di tutti i tipi di dati di lunghezza a 64 bit comporta uno spreco di spazio, perché la maggior parte delle applicazioni non necessita di dimensioni maggiori. Tuttavia, le applicazioni necessitano di puntatori a dati a 64 bit e hanno bisogno della possibilità di avere tipi di dati a 64 bit nei casi selezionati. Queste considerazioni hanno portato alla selezione di un modello di dati astratto denominato LLP64 (o P64). Nel modello di dati LLP64, solo i puntatori si espandono a 64 bit; tutti gli altri tipi di dati di base (integer e long) rimangono lunghi 32 bit.

Inizialmente, la maggior parte delle applicazioni eseguite in Windows a 64 bit sarà stata confermata da Windows a 32 bit. È un obiettivo che la stessa origine, scritta attentamente, deve essere eseguita in Windows a 32 e a 64 bit. La definizione del modello di dati non semplifica questa attività. Tuttavia, verificare che il modello di dati influisca solo sui tipi di dati del puntatore sia il primo passaggio. Il secondo passaggio consiste nel definire un set di nuovi tipi di dati che consentono agli sviluppatori di ridimensionare automaticamente i dati correlati al puntatore. Ciò consente ai dati associati ai puntatori di modificare le dimensioni man mano che le dimensioni del puntatore cambiano da 32 bit a 64 bit. I tipi di dati di base rimangono di lunghezza di 32 bit, quindi non vi sono modifiche alle dimensioni dei dati sul disco, ai dati condivisi in una rete o ai dati condivisi tramite file mappati alla memoria. Ciò consente agli sviluppatori di eseguire la conversione di codice a 32 bit in Windows a 64 bit.

Questi nuovi tipi di dati sono stati aggiunti ai file di intestazione dell'API Windows. È quindi possibile iniziare a usare i nuovi tipi ora. Per altre informazioni, vedere i nuovi tipi di dati.