Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: RGT en 29 Marzo 2015, 07:47 am



Título: Es necesario escribir return; al final de una funcion, y void?
Publicado por: RGT en 29 Marzo 2015, 07:47 am
Ejemplo:
Código:
void Funcion(int Numero)
{
   procesamiento......

   [B]return;[/B]
}

Pregunta:
Es necesario el "return:" al final de cada función o no?, qué es lo correcto?.

Ejemplo:
Código:
void Funcion([B]void[/B])
{
   procesamiento......
}

Pregunta:
Es necesario el "void" sino necesito recibir ningún valor?, qué es lo correcto?.

-
Algunos dice que nó y otros dicen que sí.
Qué es lo correcto para una perfecta comprensión para el compilador y la mejor prática en C?.


Título: Re: Es necesario escribir return; al final de una funcion, y void?
Publicado por: engel lex en 29 Marzo 2015, 12:04 pm
lo ideal es escribir el void para que el compilador vaya con preaviso que eso no retornará nada...

void no requiere return, ya que no retorna nada, sin embargo puede ser usado para salir de la función prematuramente ej

Código
  1. void print_3(int num){
  2.  if(num==3){
  3.    printf("es tres");
  4.    return;
  5.  }
  6.  printf("no es tres");
  7. }


Título: Re: Es necesario escribir return; al final de una funcion, y void?
Publicado por: rir3760 en 29 Marzo 2015, 17:53 pm
Código
  1. void Funcion(void)
  2. {
  3.   procesamiento......
  4. }

Es necesario el "void" sino necesito recibir ningún valor?, qué es lo correcto?.
Depende.

En una declaración los paréntesis vacíos indican que la función recibe un numero no determinado de argumentos, si la intención es indicar que no recibe argumentos se debe utilizar la palabra reservada "void". Un ejemplo:
Código
  1. void f();      /* El numero de argumentos es indeterminado */
  2. void g(void);  /* El numero de argumentos es cero */

En una definición los paréntesis vacíos indican que la función no recibe argumentos, no es necesario utilizar void para indicarlo. Sin embargo se recomienda utilizar void en las definiciones por simetría (estilo). Un ejemplo:
Código
  1. void f()      /* El numero de argumentos es cero */
  2. {
  3.   /* ... */
  4. }
  5.  
  6. void g(void)  /* El numero de argumentos es cero */
  7. {
  8.   /* ... */
  9. }

Un saludo