Cita:
Iniciado por arm No es la simple instruccion GOTO lo importante, igual que no tiene importancia en los apuntadores por si solos, pero gracias a ellos podemos construir arreglos en tiempo de ejecucion.
¿? Mezclas la velocidad con el tocino. Pero a lo que dices:
_No_ puedes crear en C arrays en tiempo de ejecución.
Cita:
Iniciado por arm ¿No es mas eficiente el arreglo creado en tiempo de ejecucion?
Si, por que ahora se puede modificar su tamaño.
Que se pueda modificar o no, no los haría más eficientes (de hecho no los hace, porque arrays dinámicos en C no existen).
De hecho, la diferencia entre un array y un puntero es muy poca. La única diferencia es que del array estático se conoce el tamaño de la zona a la que apunta, de un puntero no.
Cita:
Iniciado por arm Es en esta direccion que hablo de eficiencia, talvez cometi un error al utilizar la palabra, asi que la cambiare por simple.
Me he encontrado con situaciones en que dentro de una funcion hay dos bloques que comparten una misma estructura, eso para mi si significa que puedo ponerlo en una funcion y llamarla dentro de la funcion para ahorrar espacio. Tambien significa que puedo hacer algo como esto
bloqueX:
{
....
}
y brincar aqui cuando sea necesario.
pero entre esto y una funcion hay mas factores, por que si creo una funcion se crea un espacio en la pila por lo menos (diras que exajero, pero creo que es correcto), pero si creo el bloque redusco la modularidad.
¿Hay mas factores?
R=Si
¿Cual es la ventaja?
R=Te contestare como lo hiso el autor del libro en que apredi a menejar las funciones estaticas. !Averigualo, es tu programa¡
Buf estás mezclando todo...
"goto" sirve para saltar a otro lugar la memoria. Los usos en los que se puede alcanzar más eficiencia son en casos con grandes bucles y cosas similares. Aún así, su uso debe ser muy bien pensad.
Lo que tú dices de crear un bloque con una etiqueta en vez de llamar a una función... Sólo tendría sentido en funciones que son llamadas _muchas_ veces. Y aún así, para eso tienes la palabra clave "inline" que hace que el compilador se encargue de eso por ti, sin tener que usar gotos ni demás.