"foo(bar = baz)" vs "bar = baz; foo(bar)"

Iniciado por 4dr14n31t0r, 19 Octubre 2016, 12:36 PM

0 Miembros y 1 Visitante están viendo este tema.

4dr14n31t0r

Cuando yo veo algo como
Código (cpp) [Seleccionar]
foo(bar = baz)lo que me imagino que ocurre es que se lee el contenido del registro de baz y se guarda en la pila para luego acceder al registro de la variable bar y pasarle el valor que se guardó en la pila, y despues sin eliminar el valor de la pila se le pasa tambien al parametro de la funcion foo, por lo que es mas eficiente (aunque muy poco, pero mas eficiente) que si hago algo como esto:
Código (cpp) [Seleccionar]
bar = baz;
foo(bar);
Ya que, en este caso, copio y pego el valor del registro en la pila 2 veces.

Asi es como me lo imagino, pero en realidad no tengo ni idea de como funciona. ¿Me equivoco?

¿Y si hiciera esto?
Código (cpp) [Seleccionar]
a = b = c;¿Pasaria algo parecido?

class_OpenGL

El manejo de la pila es dependiente del compilador, así que no hay una respuesta general

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL