C/Visual C - Apuntadores near y far C++

 
Vista:

Apuntadores near y far C++

Publicado por Ricardo Garza (1 intervención) el 07/08/2005 20:35:57
Si alguien tiene información de qué diferencia hay entre apuntadores far y near en C++ se los agradeceré, porque a mi modo de programar, nunca los había utilizado (los apuntadores tradicionales a tipos de datos, variables, funciones, estructuras y demás son los que he manejado) pero nunca he trabajado con apuntadores far y near. O si alguien me explica en este foro su utilización y diferencia. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Apuntadores near y far C++

Publicado por fernando.gomez (1603 intervenciones) el 08/08/2005 04:14:55
Bueno, esto es un pequeña clase de historia ;-).

Los apuntadores "near" y "far" ya están en desuso, y los compiladores de hoy en día rara vez los ocupan. Algunos, como VC, incluyen los #defines sólo por compatibilidad.

La diferencia radica en el tamaño de los apuntadores. En antiguos sistemas, las direcciones de memoria en la RAM eran pequeñas por obvias razones (el tamaño de la RAM misma). En sistemas viejos, usualmente eran de dos bytes. Con ello, podías apuntar a datos "cercanos", es decir, que estuvieran en el rango de dos bytes. Conforme el tamaño de la RAM fué creciendo, en los mismos sistemas viejos, los punteros seguían siendo de dos bytes, pero ahora era necesaria un rango mayor para "apuntar" a las direcciones de memoria más "lejanas", que sobrepasaban los dos bytes. De ahí, se les ocurrió inventar los apuntadores near (cerca) y far (lejos).

Hoy en día, los compiladores no tienen problemas para manejar grandes direcciones en memoria (por ejemplo, en Win32 un proceso de aplicación tiene reservado hasta 4GB en memoria RAM), y por ello ya están en total desuso.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Apuntadores near y far C++

Publicado por El Mogur (202 intervenciones) el 10/08/2005 00:00:44
Muy bien explicado!! Sin entrar en detalles escabrosos de segmentos y desplazamientos ;)

Únicamente añadir que que el "FAR" y el "NEAR" eran dos palabras reservadas en el "dialecto" o "variante" de C para máquinas Intel ;)

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Apuntadores near y far C++

Publicado por Ricardo Garza (1 intervención) el 13/08/2005 04:18:03
Miren, básicamente tengo el siguiente código que me ha tocado dar mantenimiento, de ahí que haga la consulta de apuntadores far y near, porque al parecer hay un programa aquí en la instalación donde trabajo que fue programado en Quick Basic 4.5 y llama a esta rutina escrita en C.

/* C function to return the ASCII value of the character
at position pos in string c of length len. */

int far myasc(c,len,pos)
char near *c;
int len, pos;
{

if(pos>len) return(c[--len]);/* Avoid indexing off end. */
else if (pos<1) return(c[0]);/* Avoid indexing off start. */
else
return(c[--pos]);/* pos is good. Return the character at
pos-1 because C arrays (strings) are
zero-indexed. */
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar