Foros del Web » Programación para mayores de 30 ;) » Programación General »

Lenguaje C. Compartir informacion entre programas

Estas en el tema de Lenguaje C. Compartir informacion entre programas en el foro de Programación General en Foros del Web. Hola de nuevo a todos. Tengo una duda que no se resolver. He creado un programa en C que tiene declarada una estructura fuera del ...
  #1 (permalink)  
Antiguo 26/03/2005, 03:59
 
Fecha de Ingreso: diciembre-2003
Mensajes: 190
Antigüedad: 20 años, 11 meses
Puntos: 0
Lenguaje C. Compartir informacion entre programas

Hola de nuevo a todos. Tengo una duda que no se resolver. He creado un programa en C que tiene declarada una estructura fuera del main, unas funciones que manejan esa estructura y un main que coordina todo. Hasta aqui nada nuevo. Ahora tengo que hacer otro programa en C que llama al primero para que cree la estructura y la llene de datos pero una vez que termina esa estructura debe de seguir estando disponible para ser usada por este segundo programa. tambien deben de estar disponibles las funciones que la manejan.

Como podria hacer esto? debo de poner algo especial en la cabera de mi segundo programa?.


Gracias de antemano.
  #2 (permalink)  
Antiguo 26/03/2005, 04:15
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Tal vez puedas utilizar archivos pero la verdad no veo que sentido tiene crear una estructura en otro programa y despues manejarla (con las mismas funciones en el que llamo al otro).

Para poder acceder a las funciones podes declararlas en un archivo .h e incluirlo desde el segundo programa directamente y tambien crear un .c aparte y despues enlazar el programa con el obj generado (siempre teniendo el H con las definiciones).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 26/03/2005, 05:37
 
Fecha de Ingreso: diciembre-2003
Mensajes: 190
Antigüedad: 20 años, 11 meses
Puntos: 0
A ver si te he entendido. Creo un .h con la siguiente estructura


void analizar(void);
/* Prototipos de funciones */
void inicializa_hash (void);
int f_hash(char *);
int inserta_elemento_hash(char *, int, int);
void recorre_hash ();


/* Fin de prototipos */


Esto que acabo de escribir tambien debe de estar en el primer .c Si deseo usar estas funciones en el ultimo .c creado debo de poner en la cabecera #include <funciones.h>

Y como enlazo despues los dos .c? que comando escribo?


Gracias
  #4 (permalink)  
Antiguo 26/03/2005, 06:02
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Te doy un ejemplo muy simple:

programa_1.c:
Código:
#include "funciones.h"

void main()
{
 analizar();
}
programa_2.c
Código:
#include "funciones.h"

void main()
{
  inicializa_hash();
}
funciones.h
Código:
void analizar(void);
/* Prototipos de funciones */
void inicializa_hash (void);
int f_hash(char *);
int inserta_elemento_hash(char *, int, int);
void recorre_hash ();


/* Fin de prototipos */
Y en funciones.c pones las definiciones de las funciones que estan en funciones.h. Despues para los dos programas podes compilar el funciones.c (con una vez por separado alcanza en realidad) y el programa.c.

¿Que compilador estas usando?
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 26/03/2005, 06:44
 
Fecha de Ingreso: diciembre-2003
Mensajes: 190
Antigüedad: 20 años, 11 meses
Puntos: 0
uso el MinGW Developer Studio.
Voy a probar si esto compila de la forma en que me has dicho. Muchas gracias por tus consejos

Última edición por selma128; 26/03/2005 a las 06:46
  #6 (permalink)  
Antiguo 26/03/2005, 06:49
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
De nadas

Y compila seguro, podes intentar pasarle al compilador los dos archivos de codigo (primero.c funciones.c) o al enlazador (linker) los dos archivos objeto (primero.obj funciones.obj).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 26/03/2005, 11:08
 
Fecha de Ingreso: diciembre-2003
Mensajes: 190
Antigüedad: 20 años, 11 meses
Puntos: 0
ok, ya compila bien pero tengo una duda. la estructura donde la meto, en funciones.h o en funciones.c


gracias
  #8 (permalink)  
Antiguo 26/03/2005, 11:20
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
En funciones.h que funciones.c también incluye con #include.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #9 (permalink)  
Antiguo 26/03/2005, 11:42
 
Fecha de Ingreso: diciembre-2003
Mensajes: 190
Antigüedad: 20 años, 11 meses
Puntos: 0
Lo meto en funciones.h y en funciones.c pongo #include "funciones.h"

no?
  #10 (permalink)  
Antiguo 26/03/2005, 11:45
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Sip
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #11 (permalink)  
Antiguo 26/03/2005, 12:11
 
Fecha de Ingreso: diciembre-2003
Mensajes: 190
Antigüedad: 20 años, 11 meses
Puntos: 0
ok, muchas gracias por tus valiosos conocimientos
  #12 (permalink)  
Antiguo 26/03/2005, 12:17
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
De nadas, me alegro de que te haya servido
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:16.