2012-01-04 4 views

Respuesta

17

Las diferencias solo son relevantes en 16 bit intel architectures.

En lo que respecta a las direcciones virtuales, tiene dos componentes: un selector y un desplazamiento.

El selector de es un índice en una tabla de direcciones de base y offset se suma en esa dirección base.

cerca de punteros no tienen selector - tienen implied selector. Pueden acceder a 64k del espacio de direcciones virtuales.

lejos punteros tienen un explicit selector. Sin embargo, cuando haces aritmética de puntero en ellos, el selector isn't modified.

enormes punteros tienen un explicit selector. Cuando haces aritmética de puntero en ellos, the selector can change.

Por favor, consultar este enlace para más información:

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

+2

¡Aargh! ¡Estoy empezando a recordar todo esto! (Todas las cosas con modelos de memoria también.) ¡Haz que se vaya! Pasé al desarrollo de arquitecturas planas de 32 bits solo por una buena razón ... –

4

Cerca, lejos, y punteros grandes no son parte del estándar de C; son/fueron una extensión introducida por varios proveedores para tratar arquitecturas de memoria segmentadas. La respuesta de Karthik da muchos más detalles.

Cuestiones relacionadas