C/Visual C - Donde quedo el valor devuelto por la funcion?

 
Vista:

Donde quedo el valor devuelto por la funcion?

Publicado por BicktorZ (1 intervención) el 08/07/2001 21:44:22
Mas que un problema es una duda, cuando llamo a una funcion de la API de Win2 GetWindowsDirectory(....) por ejemplo, el valor devuelto por esta funcion es UINT, cuando en Visual C llamo a esta funcion y el valor devuelto no lo asigno a una variable (como se hace en VB), el compilador no marca ningun error o warning como deberia esperarse...

¿Que es lo que hace le compilador con ese valor?

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

Espero que alguien lea esto..

Publicado por Fabián Sierra Carvajal (50 intervenciones) el 11/07/2001 05:43:00
Ha pasado tiempo sin que nadie conteste; espero que quien preguntó aún sienta curiosidad, o que le sirva a otro.
La respuesta es bien simple: ¡nada! El compilador podría generar el código de manera que las funciones retornaran un valor en la pila (con un push) o en un registro (casi siempre es ax; es decir, hace move ax,valor). Si lo retorna en la pila, al salir de la función se hará pop a algún registro, y en el registro se quedará; no hace daño y pronto será sobreesccrito. Si retorna a un registro, es lo mismo; seguramente será sobreescrito. Supongamos que tenemos una función que retorna un valor y lo deja en el registro ax. La instrucción de asignación sería un meve, ¿verdad? Pues si ese move no se hace, no pasa nada. El registro ax se escribirá probablemente en la siguiente instrucción.
En fin. Cualquier duda, escríbeme; pero el mecanismo es sencillo. Es como guardar un valor en una variable y no usarlo. En ese sentido, los registros son equivalentes a variables.
¡Suerte!
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