Punteros cercanos y lejanos

¿Cuál es la diferencia entre nuestros punteros habituales (los que usamos normalmente), los punteros cercanos y los punteros lejanos y existe un uso práctico para los punteros cercanos y lejanos en los actuales sistemas C / C ++? Cualquier escenario práctico que requiera el uso de estos punteros específicos y no otra semántica c, c ++ será de gran ayuda.

Las palabras clave near y far tienen su origen en el modelo de memoria segmentada que Intel tenía antes. Los punteros cercanos solo podían acceder a un bloque de memoria originalmente de alrededor de 64 Kb de tamaño llamado segmento, mientras que los punteros lejanos podían salir de ese rango que consiste en un segmento y desplazamiento en ese segmento. Los punteros cercanos fueron mucho más rápidos que los punteros lejanos, por lo que en algunos contextos valió la pena usarlos.

Hoy en día, con la memoria virtual, los punteros cercanos y lejanos no tienen uso.

EDIT: Perdón si no estoy usando los términos correctos, pero así es como lo recordaba cuando estaba trabajando con él en el día 🙂