2012-01-04 14 views

risposta

17

Le differenze sono rilevanti solo per 16 bit intel architectures.

Per quanto riguarda gli indirizzi virtuali, ha due componenti: un selettore e un offset.

Il selettore è un indice in una tabella di indirizzi di base e sfalsati è aggiunto su tale indirizzo di base.

vicino a i puntatori non hanno un selettore - hanno un implied selector. Possono accedere a 64k dallo spazio degli indirizzi virtuali.

lontano puntatori hanno uno explicit selector. Tuttavia, quando esegui l'aritmetica puntatore su di essi il selector isn't modified.

enorme puntatori hanno un explicit selector. Quando esegui l'aritmetica puntatore su di essi anche se the selector can change.

Si prega di fare riferimento questo link per maggiori informazioni:

http://www.codeproject.com/Answers/103115/near-vs-far-vs-huge-pointers/?cmt=11086#answer1

+2

Aargh! Sto iniziando a ricordare tutte queste cose! (Tutto con i modelli di memoria.) Fallo andare via! Mi sono trasferito allo sviluppo di architetture flat a 32 bit solo per una buona ragione ... –

4

Vicino, lontano, ed enormi puntatori non fanno parte della serie C; sono/erano un'estensione introdotta da diversi fornitori per gestire architetture di memoria segmentate. La risposta di Karthik fornisce molti più dettagli.

Problemi correlati