Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: 4dr14n31t0r en 19 Octubre 2016, 12:36 pm



Título: "foo(bar = baz)" vs "bar = baz; foo(bar)"
Publicado por: 4dr14n31t0r en 19 Octubre 2016, 12:36 pm
Cuando yo veo algo como
Código
  1. 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
  1. bar = baz;
  2. 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
  1. a = b = c;
¿Pasaria algo parecido?


Título: Re: "foo(bar = baz)" vs "bar = baz; foo(bar)"
Publicado por: class_OpenGL en 19 Octubre 2016, 15:40 pm
El manejo de la pila es dependiente del compilador, así que no hay una respuesta general