Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/05/2008, 15:22
Avatar de Mephisto
Mephisto
 
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Re: Diferencias entre void e int

Complementando lo que menciona a2a2

La estructura de las funciones se definen como

[Valor Retorno] Nombre_Funcion (Parametros de Entrada){}

Imagina una funcion como una caja negra en la cual puedes o no insertar datos y esta dara o no a la salida algun valor.

Cuando empleas void haces referencia a que el valor es vacio, por lo que si colocas

void funcion()

dices que esta funcion no regresara valores, si colocas

int funcion()

dices que la funcion dara a la salida un valor entero, por lo que necesitas un return.

Para intentar ser mas claro, imagina una funcion que emplees para desplegar en la pantalla dos valores que recibes. Como solo muestras en pantalla empleas void

void Muestra(int x, int y){
printf("los valores son %d y %d",x,y);
}

Por otro lado, si tienes una funcion que requieres te regresa la suma de los dos numeros

int Suma(int x, int y){
return x+y;
}

En muchas ocasiones empleas un retorno entero para saber que la función se ejecuta de manera correcta, por ejemplo una funcion que muestra en pantalla la división de dos numeros. En este caso debemos cuidar que la division no sea entre cero

int Division(int x, int y){
if(y == 0)
return -1;
printf("La division es %d",x/y);
return 0;
}

Con esto, si invoco la funcion Division en el main, si me regresa -1 se que existió un error en la ejecucion de la funcion, si me regresa 0, se ejecuto bien...

En Sintaxis, ambas formas son correctas, cual usar depende de lo que necesites para tu programa...

Espero haber sido claro...
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...