marcgenou escribió:me explico mejor como estan situadas. tengo una gran funcion que hace de servidor y dentro de el estan definidas estas subfunciones que se llaman una a la otra y que usan muchas variables de servidor. si las extraigo de la funcion grande pues me quedo sin poder usar las variables estas. y definirlas antes o prototiparlas como querais llamarlo no da ningun resultado supongo que por estar dentro de servidor y prototipar servidor y echarlo debajo del main tampoco.
Buenas, espero haber entendido tus dudillas
,sino mejor que pongas el código y ya se corrige más fácilmente.
Lo primero, para compartir variables entre funciones existen varios métodos,a saber:
1ºSi los datos son pequeños en tamaño y en número lo suyo es pasarlos como argumentos en las llamadas a las funciones por valor ( que son como lo estarás haciendo:valordevuelto:funcion(parametros)
2ºSi los datos son grandes o la funcion a la que vas a llamar tiene que modificar datos de la funcion llamante, se debe usar punteros a los datos (o lo que en palabras normales son las direcciones de los datos,este es el tema más peliagudo del C,hasta que se entiende bien
)
3ºOtra manera de compartir los datos entre funciones sería declararlas globales, es decir que pertenezcan a todas las funciones, se hacen declarandolas fuera de una funcion (y si tienes varios ficheros con funciones hay que volver a declararlas con la directiva extern, sino recuerdo mal...)
Este método no es nada aconsejable para la buena programación pero para ciertas situaciones biene bien.
En cuanto al tema de la declaración ,definición y llamada a las funciones debería de funcionar si está bien hecho.Sabes lo que significa cada una y su uso? Son conceptos clave para la programación estructurada en C y la verdad es que googleando un poco encontrarás tutoriales para aprenderlo, aunque si no te aclaras en algo, pregunta.
Por cierto, para las preguntas de programación yo pienso que es mejor ir con el código por delante, qué opinais vosotros?
Salu2