Puntatori vicini e lontani

Qual è la differenza tra i nostri soliti puntatori (quelli che usiamo normalmente), i puntatori vicini e i puntatori lontani e c’è un uso pratico per i puntatori vicini e lontani nei sistemi C / C ++ attuali? Qualsiasi scenario pratico che richiede l’uso di questi puntatori specifici e non di altre semantiche c, c ++ sarà molto utile.

Le parole chiave vicine e lontane hanno la loro origine nel modello di memoria segmentato che Intel aveva prima. I puntatori vicini potevano accedere solo a un blocco di memoria originariamente di 64 KB di dimensione chiamato segmento, mentre i puntatori lontani potevano andare al di fuori di tale intervallo costituito da un segmento e un offset in quel segmento. I puntatori vicini erano molto più veloci dei puntatori lontani quindi quindi, in alcuni contesti, ha pagato per utilizzarli.

Oggigiorno con memoria virtuale vicini e lontani i puntatori non hanno senso.

EDIT: Scusa se non sto usando i termini corretti, ma questo è come me lo ricordavo quando stavo lavorando con lui nel corso della giornata 🙂