Título: Ayuda 1pregunta en C/C++ Publicado por: XorNet en 23 Julio 2013, 00:36 am Bueno tengo 1 duda que para ustedes quizas sea estúpida xD Bueno aqui va, sí tenemos un programa se la siguiente manera:
Código
Título: Re: Ayuda 1pregunta en C/C++ Publicado por: z3nth10n en 23 Julio 2013, 00:58 am No me he entrao de ná. xD
A ver... Esto es probarlo y aun no me ha quedado claro tu duda... PD: Tal como tienes en tu code todo esto, te va a salir 5, y tu pides el porque... Yo no tengo npi. xD Título: Re: Ayuda 1pregunta en C/C++ Publicado por: XorNet en 23 Julio 2013, 01:07 am No me he entrao de ná. xD A ver... Esto es probarlo y aun no me ha quedado claro tu duda... PD: Tal como tienes en tu code todo esto, te va a salir 5, y tu pides el porque... Yo no tengo npi. xD Lo que trato de decir es que, al retornar una función este entra a la función y retorna el resultado esa función? o retorna la función (Perdóname semejante estupidez seguro no es así pero quiero asegurarme xddd) Título: Re: Ayuda 1pregunta en C/C++ Publicado por: z3nth10n en 23 Julio 2013, 01:13 am No tengo una respuesta certera 100%, pero como puedes observar ese return engloba a toda la función por lo que probablemente, estés retornando la función entera , aunque si te das cuenta siempre que uses return al final de una variable, supongo que podrás hacer int algo = 6; y luego un return algo;... Y ya ahí estés retornando una variable, pero yo que te voy a decir si he empezado hoy con C++ xD
Que te digan los pros del sub-foro de Programación C++ lo que ellos pienses. PD: No se porque quieres saber tal tontería, pero bueno. :huh: Título: Re: Ayuda 1pregunta en C/C++ Publicado por: Puntoinfinito en 23 Julio 2013, 01:13 am A ver, lo primero que se ejecuta es main(), evidentemente. Luego a partir de ahí llama a la impresión de pantalla con el valor que retorna function1(), que esta va a function2() que retorna el número 5, y luego vuelve a main(), en este caso ejecuta getchar() y bye bye.
Título: Re: Ayuda 1pregunta en C/C++ Publicado por: Caster en 23 Julio 2013, 10:30 am Lo primero: Hay que aprender a explicarse un poco mejor, sin animo de ofender.
Segundo: No hay mejor manera de aprender a programar que probando cada uno sus codigos, al compilar este codigo: Código
el compilador no da ningun aviso ni error y compilar perfectamente, y el resultado es este: Citar 5 Saludos. Título: Re: Ayuda 1pregunta en C/C++ Publicado por: calabuig21 en 23 Julio 2013, 10:46 am Hazte un dibujo a mano, sigue las funciones y verás el resultado. Un ejemplo fácil lo puedes hacer en papel y lapiz ;D
Título: Re: Ayuda 1pregunta en C/C++ Publicado por: eferion en 23 Julio 2013, 10:56 am cuando tu haces
Código
Lo que estás haciendo, realmente, es lo siguiente: * Has creado una función "funcion2", que lo único que hace es devolver el resultado que a su vez le proporciona otra funcion "funcion1". * Dado que funcion1 siempre va a devolver un 5, funcion2 va a devolver ese mismo 5. * El printf del main va a sacar por pantalla el valor devuelto por funcion2... es decir, un 5. Cuando tu haces lo siguiente: Código
No estás devolviendo una función... sino el resultado de esa función. De hecho, lo que has puesto es equivalente a: Código
Es decir, tu no devuelves funciones. Más bien estás llamando a una función determinada ( funcion1 ) y estás almacenando el resultado que te devuelve. Título: Re: Ayuda 1pregunta en C/C++ Publicado por: zonahurbana en 24 Julio 2013, 07:01 am Código
- Al inicio se encuentra la declaración y definición de ambas funciones (ello no implica que se ejecuten antes de main(), sólo si son llamadas por esta función principal). - Desde main() muestras el valor devuelto por funcion1(). - funcion1() devuelve el valor devuelto por funcion2(). - funcion2() devuelve 5. - Se muestra 5 por pantalla. Extra. Por lo general se recomienda escribir antes de main() los prototipos de las funciones. Algo como: Código Y luego, usualmente después de main(), definir el cuerpo de las funciones, para que no haya conflictos en programas donde usas muchas. Por ejemplo, en tu programa, si el orden hubiese sido el siguiente: Código ... hubiese errores, ya que al momento en que se define el cuerpo de funcion1() aún no existe funcion2(). Entonces cuando muchas funciones se llamen entre sí, para no estar pendientes del orden, es mejor escribir sus declaraciones (prototipos :silbar:). Título: Re: Ayuda 1pregunta en C/C++ Publicado por: amchacon en 24 Julio 2013, 07:54 am Vamos ha hacerlo más interesante. Esto es una función que te calcula las veces que tienes que dividir entre 2 un número para obtener 0:
Código
Como puedes ver, se puede retornar incluso la misma función. A esta técnica de programación se le llama recursividad, o función recursiva. Título: Re: Ayuda 1pregunta en C/C++ Publicado por: Eternal Idol en 24 Julio 2013, 11:01 am XorNet: la funcion1 LLAMA a la funcion2 y retorna lo que esta retorna.
Un pseudocodigo: funcion1: call funcion2 ret funcion2: mov eax, 5 ret amchacon: para no confundir funcion1 retorna siempre un entero aunque se llama a si misma. Título: Re: Ayuda 1pregunta en C/C++ Publicado por: NoLife en 26 Julio 2013, 01:32 am bueno, basicamente a lo que haces colocando una funcion dentro de otra, se le llama reuso de una funcion. el por que de ser 5?, porque la sola invocacion de la primera funcion, en este caso es del tipo-returno (int), por tiene que haber obligatoriamente un returno.
Código: int function2() |