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)
| | |-+  Duda en una condición con return
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Duda en una condición con return  (Leído 5,683 veces)
Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Duda en una condición con return
« en: 28 Junio 2013, 03:31 am »

Mi duda esta en la linea indicada que pasa cuando se cumple la condicion y se ejecuta
la linea indicada, como ven es una funcion que no retorna ningun valor.

Código
  1. void clear_all_latency_tracing(struct task_struct *p)
  2. {
  3. unsigned long flags;
  4.  
  5. if (!latencytop_enabled)
  6. return; //<==
  7.  
  8. raw_spin_lock_irqsave(&latency_lock, flags);
  9. memset(&p->latency_record, 0, sizeof(p->latency_record));
  10. p->latency_record_count = 0;
  11. raw_spin_unlock_irqrestore(&latency_lock, flags);
  12. }


« Última modificación: 28 Junio 2013, 03:36 am por Blaster » En línea

pacoperico

Desconectado Desconectado

Mensajes: 100


Ver Perfil
Re: Duda en una condición con return
« Respuesta #1 en: 28 Junio 2013, 03:45 am »

El return interrumpe la ejecucion de la funcion y pasa el control a donde se haya invocado la funcion. De forma opcional una sentencia return puede devolver una expresion. No hay ningun tipo de conflicto por usar una sentencia return en una funcion de tipo void.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Duda en una condición con return
« Respuesta #2 en: 28 Junio 2013, 03:59 am »

como es una funcion de tipo void, no responde nada ni necesita un valor para pasar ("void" en inglés es "vacío")
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Duda en una condición con return
« Respuesta #3 en: 28 Junio 2013, 04:02 am »

Agradezco las respuestas pero creo que ya logre entenderlo, con esto forzamos a una funcion de tipo void a que no termine mientras que la condicion no se cumpla al ser asi fuerza la salida de la funcion y vuelve a la instruccion que la invoco.

En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Duda en una condición con return
« Respuesta #4 en: 28 Junio 2013, 11:06 am »

Buenas!!

Eso es lo que hace, aunque no me gusta eso de meter returns, prefiero esto:
Código
  1. void clear_all_latency_tracing(struct task_struct *p) {
  2.    unsigned long flags;
  3.  
  4.    if (latencytop_enabled) {
  5.        raw_spin_lock_irqsave(&latency_lock, flags);
  6.        memset(&p->latency_record, 0, sizeof(p->latency_record));
  7.        p->latency_record_count = 0;
  8.        raw_spin_unlock_irqrestore(&latency_lock, flags);
  9.    }
  10. }

Llamadme maniático....  :silbar::silbar: jeje

Saludos
En línea

Breakbeat como forma de vida
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Duda en una condición con return
« Respuesta #5 en: 28 Junio 2013, 11:15 am »

Hombre, eliminar returns intermedios siempre es una buena opción como norma general... ya que es fácil si no saltarse alguna tarea a realizar antes de salir... como liberar memoria.

Código
  1. void func( int numero )
  2. {
  3.  char* buffer = new buffer[ 10 ];
  4.  
  5.  // ...
  6.  
  7.  if ( numero < 0 )
  8.    return;
  9.  
  10. // ...
  11.  
  12.  delete buffer;
  13. }

Ejemplos similares a este me he encontrado a patadas.

No obstante también digo que funciones con muchos niveles, si con returns mejora muchísimo la claridad... ahí me pienso si poner o no returns :)
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Duda en una condición con return
« Respuesta #6 en: 28 Junio 2013, 11:21 am »

A mí me gustan los returns, una forma fácil y eficiente de acabar una función.

Solo tienes que tener cuidado de liberar la memoria  ;)
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Duda en una condición con return
« Respuesta #7 en: 28 Junio 2013, 11:23 am »

Buenas!!

Claro, si para gustos....

El caso es que de ambos modos está bien, es cuestión de manías o necesidades jeje

Saludetes
En línea

Breakbeat como forma de vida
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Duda en una condición con return
« Respuesta #8 en: 28 Junio 2013, 11:38 am »

A mí me gustan los returns, una forma fácil y eficiente de acabar una función.

Solo tienes que tener cuidado de liberar la memoria  ;)

Mi caso es un poco extremo... pero en un proyecto como en el que estoy... de 13 millones de líneas de código... y 70 personas picando código... acabas detestando un poco los returns a mitad de función.

No es por el que lo hace... sino por el que luego va a meter mano ahí.

Pero es cierto, es cuestión de gustos.
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Duda en una condición con return
« Respuesta #9 en: 28 Junio 2013, 12:29 pm »

Mi caso es un poco extremo... pero en un proyecto como en el que estoy... de 13 millones de líneas de código... y 70 personas picando código... acabas detestando un poco los returns a mitad de función.

No es por el que lo hace... sino por el que luego va a meter mano ahí.

Pero es cierto, es cuestión de gustos.
¿Estas desarrollando un linux? Que barbaridad  ;-)

Pues la verdad esque nunca he tenido que trabajar en equipo, aunque en realidad todo se resuelve con unas buenas notaciones.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda script tracear con condición?
Ingeniería Inversa
.:UND3R:. 0 1,845 Último mensaje 23 Septiembre 2011, 19:29 pm
por .:UND3R:.
Duda con condición BASH
Scripting
.:UND3R:. 2 2,243 Último mensaje 8 Noviembre 2013, 02:08 am
por .:UND3R:.
[c]Duda con return en funcion
Programación C/C++
dmacias 5 3,024 Último mensaje 8 Abril 2014, 18:51 pm
por dmacias
Duda sentencia return en C
Programación C/C++
David8 9 4,149 Último mensaje 2 Mayo 2014, 17:53 pm
por Eternal Idol
Duda en una condición if
Java
JonaLamper 1 1,772 Último mensaje 6 Noviembre 2016, 15:17 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines