C/Visual C - Funcion FAR

 
Vista:

Funcion FAR

Publicado por Alejandro Tomé (17 intervenciones) el 04/08/2000 00:00:00
Alguien me puede explicar para que sirve y como se usa
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:Funcion FAR

Publicado por xj35u5x (113 intervenciones) el 04/08/2000 00:00:00
Hola, bueno, yo al igual que tu soy muy aprendiz de este lenguaje, pero por lo que yo se, far no es una funcion, sino una palabra reservada del lenguaje que indica algo sobre la memoria que ocupas o algo así, analogamente he oido hablar de "near", "small", etc, espero que te haya servido de algo.
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:Funcion FAR

Publicado por El Pollito (29 intervenciones) el 06/08/2000 00:00:00
Resulta que la palabra far es exclusiva de los compiladores C de 16 bits para DOS,
como el famoso Turbo C++ de Borland.

Si estas utilizando un compilador C para Windows, como VisualC++, o C++Builder,
no será necesaria esta palabrita.

Asumo que estas trabajando en DOS.
Bueno, resulta que hay varios modelos de memoria en C:
tiny, small, medium, large, y huge.

Una direccion de memoria o una variable apuntador en modelos near y tiny, no
necesita mucho para direccionar, sino solo 2 bytes, porque los datos no exceden el tamaño
de un segmento, Aqui estan los magicos 64k maximo de memoria del DOS.

Esto cambia con los otros modelos,donde se ocupan 4 bytes. Aqui es donde entra la
palabra far, con la cual se indica al compilador que el apuntador tendra una
direccion de otro segmento de memoria, y como tal debera ser manipulado con instrucciones
far.


ejemplo:
si tu programa utilza el modelo tiny o small, podrias hacer esto:

char *p = (char *) malloc(10);
.
.
codigo
.
.
free(p) ;

Pero si utilizas otro modelo diferente, te conviene hacer esto:
far char *p = (far char *) farmalloc(10);
.
.
codigo
.
.
farfree(p);

Generalmente dse usa los modelos medium, large y huge, cuando tu codigo o datos
exceden 64k.
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