Autor
|
Tema: Duda en una condición con return (Leído 5,683 veces)
|
Blaster
Desconectado
Mensajes: 190
|
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. void clear_all_latency_tracing(struct task_struct *p) { unsigned long flags; if (!latencytop_enabled) return; //<== raw_spin_lock_irqsave(&latency_lock, flags); memset(&p->latency_record, 0, sizeof(p->latency_record)); p->latency_record_count = 0; raw_spin_unlock_irqrestore(&latency_lock, flags); }
|
|
« Última modificación: 28 Junio 2013, 03:36 am por Blaster »
|
En línea
|
|
|
|
pacoperico
Desconectado
Mensajes: 100
|
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
|
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
Mensajes: 190
|
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
Mensajes: 301
Siempre aprendiendo
|
Buenas!! Eso es lo que hace, aunque no me gusta eso de meter returns, prefiero esto: void clear_all_latency_tracing(struct task_struct *p) { unsigned long flags; if (latencytop_enabled) { raw_spin_lock_irqsave(&latency_lock, flags); memset(&p->latency_record, 0, sizeof(p->latency_record)); p->latency_record_count = 0; raw_spin_unlock_irqrestore(&latency_lock, flags); } }
Llamadme maniático.... jeje Saludos
|
|
|
En línea
|
Breakbeat como forma de vida
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
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. void func( int numero ) { char* buffer = new buffer[ 10 ]; // ... if ( numero < 0 ) return; // ... delete buffer; }
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
Mensajes: 1.211
|
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
|
|
|
|
satu
Desconectado
Mensajes: 301
Siempre aprendiendo
|
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
Mensajes: 1.248
|
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
Mensajes: 1.211
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
duda script tracear con condición?
Ingeniería Inversa
|
.:UND3R:.
|
0
|
1,845
|
23 Septiembre 2011, 19:29 pm
por .:UND3R:.
|
|
|
Duda con condición BASH
Scripting
|
.:UND3R:.
|
2
|
2,243
|
8 Noviembre 2013, 02:08 am
por .:UND3R:.
|
|
|
[c]Duda con return en funcion
Programación C/C++
|
dmacias
|
5
|
3,024
|
8 Abril 2014, 18:51 pm
por dmacias
|
|
|
Duda sentencia return en C
Programación C/C++
|
David8
|
9
|
4,149
|
2 Mayo 2014, 17:53 pm
por Eternal Idol
|
|
|
Duda en una condición if
Java
|
JonaLamper
|
1
|
1,772
|
6 Noviembre 2016, 15:17 pm
por ivancea96
|
|