elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Diferencias entre funcion que retorna y no retorna.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Diferencias entre funcion que retorna y no retorna.  (Leído 4,293 veces)
FKT

Desconectado Desconectado

Mensajes: 221



Ver Perfil
Diferencias entre funcion que retorna y no retorna.
« en: 20 Agosto 2015, 14:31 pm »

Bueno como dice el titulo cual es la diferencia entre una funcion que retorna y otra que no y imagino que va relacionado con el tipo de dato "void".


En línea

Solo hay 10 tipos de personas, las que saben binario y las que no.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Diferencias entre funcion que retorna y no retorna.
« Respuesta #1 en: 20 Agosto 2015, 15:02 pm »

Una función que retorna, devuelve un valor u objeto.

Por ejemplo, la función "atoi(char*)", coge una cadena, y la transforma en un int.

Código
  1. char s[] = "21";
  2. int n = atoi(s);

"atoi" retorna el entero 21.

Las funciones void, simplemente no retornan. Hacen un trabajo, el que sea, y no devuelve nada.


En línea

FKT

Desconectado Desconectado

Mensajes: 221



Ver Perfil
Re: Diferencias entre funcion que retorna y no retorna.
« Respuesta #2 en: 20 Agosto 2015, 15:08 pm »

Imagino que eres programador por la forma en que me lo explicas pero yo apenas se usar algunos bucles, variables printf() y algo más jeje.

Siento la obligación de preguntarte también que es un objeto en C.

 :P
En línea

Solo hay 10 tipos de personas, las que saben binario y las que no.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Diferencias entre funcion que retorna y no retorna.
« Respuesta #3 en: 20 Agosto 2015, 15:23 pm »

Bueno, en C no hay objetos. En C++ sí. Por así decirlo, es como una estructura de C, pero con algunos cambios. Los lenguajes que los utilizan sson lenguajes de Programación Orientada a Objetos (POO). Si estás empezando en C, olvida los objetos.

Por ejemplo, printf:

Código
  1. int printf(const char*, ...);

Esa es la definición de printf. Los argumentos, más o menos a sabrás como van.
Ahora bien, printf retorna int. No es de gran importancia. Puedes probar a guardar lo que retorna en una variable, y luego sacarla por pantalla para ver qué es.

Printf retorna el número de caracteres que ha escrito en pantalla.
Por ejemplo:
Código
  1. printf("%i", 22);
Retorna 2, pues escribirá 2 caracteres. Mera información.
En línea

FKT

Desconectado Desconectado

Mensajes: 221



Ver Perfil
Re: Diferencias entre funcion que retorna y no retorna.
« Respuesta #4 en: 20 Agosto 2015, 21:43 pm »

Entiendo el segundo ejemplo ya que printf()  va ha mostrar en pantalla el numero 2 es así?

Y el primer ejemplo no entiendo lo de (const char*, ...);
Lo único que entiendo de el ejemplo es que se va ha mostrar algo en pantalla que después de mirarlo mucho y pensarlo no he llegado a la conclusión y que hay una variable char.

Creo que aun estoy en lo más básico porque no entiendo tu sintaxis en el interior de printf().

Y sigo sin entenderpara que sirve que retorne un numero, quizás para que el programa sepa que no ha habido ningún error en el programa? Imagino que es eso pero de que sirve que una funcion
Código
retorne un valor, no basta con el
Código
  1. return 0;
de el final?
« Última modificación: 20 Agosto 2015, 21:46 pm por FKT » En línea

Solo hay 10 tipos de personas, las que saben binario y las que no.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Diferencias entre funcion que retorna y no retorna.
« Respuesta #5 en: 20 Agosto 2015, 22:04 pm »

"printf" te retorna el número de caracteres que ha escrito. Luego ese valor, lo puedes guardar en una variable, y hacer con ella lo que quieras.

El "main" no es una función normal. Es el punto de entrada dle programa, donde comienza a ejecutarse. Lo que retorna, es un valor que leerá el sistema operativo.

Lo de "int printf(const char*, ...);" es la declaración de la función "printf". Esto es, solo el prototipo para que sepas cual es su valor de retorno (int), y qué parámetros hay que pasarle (const char*, ...).
(Lo del "..." ignóralo ahora xD)

Imagina que quieres elevar al cuadrado un número. Hay una función en la librería "math.h" que es:
Código
  1. float pow(float base, float exponente);

Así que si quieres elevar un número al cuadrado, o a cualquier otro exponente, la llamas:
Código
  1. float num = pow(10, 5);
Ahora la variable "num" tendrá el valor 100000. Eso es el retorno.

Si aun no te queda claro, puedes ver este vídeo, de Minidosis, una página para aprender principalmente C++. Pero no importa, vale para C igual.
http://www.minidosis.org/#/actividades/Cpp.Funciones.Subprogramas.vid

*Lo de "cout" y "cin" son formas de mostrar en pantalla, y leer entrada, como printf y scanf*

Llámalo subprograma, llámalo función, =.
En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: Diferencias entre funcion que retorna y no retorna.
« Respuesta #6 en: 20 Agosto 2015, 22:20 pm »

Con lo que te dijo @ivancea96  ^^ creo que tienes.

De cualquier manera, te recomiendo te leas el punto 1 y sus apartados en este link:

https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Uso_de_funciones

*Cuando avances podrás leerte y entender el punto 2.

Salu2s
En línea

FKT

Desconectado Desconectado

Mensajes: 221



Ver Perfil
Re: Diferencias entre funcion que retorna y no retorna.
« Respuesta #7 en: 21 Agosto 2015, 00:31 am »

Muchas gracias me han parecido super interesantes los links del video y porfin me ha ayudado ha entenderlo ;-) :xD

Y bueno gracias por tomaros el tiempo para explicarmelo ;D
« Última modificación: 21 Agosto 2015, 00:56 am por FKT » En línea

Solo hay 10 tipos de personas, las que saben binario y las que no.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines