• Viernes 8 de Noviembre de 2024, 15:41

Autor Tema:  Estructura archivos .h y .c  (Leído 8542 veces)

System@32

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Estructura archivos .h y .c
« en: Jueves 26 de Noviembre de 2009, 16:49 »
0
Hola a todos!!!

A ver... tengo un archivo .h llamado tdatos.h (tipos de datos), donde hay algunas constantes y los encabezados de las estructuras. Ademas tengo el tdatos.c donde estan definidas las estructuras. Ahora en el archivo principal hago el include del tdatos.h, hasta aqui todo bien, creo una variable con uno delos tipos de datos que hay definidos en el tdatos.h. Ahora puedo acceder a toda la estructura no esa variabel sin problemas, pero cuando le doy a compialar, me VS2008 me dice que uso un struct sin definir...

Ejemplo:

tdatos.h
Código: C
  1.  
  2. #ifndef TDADES_H
  3.     #define TDADES_H
  4.  
  5.     #define MAX_NOMBRE 30
  6.     typedef struct DATOS DATOS;
  7. #endif
  8.  
  9.  

tdatos.c
Código: C
  1.  
  2. #include "tdades.h"
  3. struct DATOS{
  4.     char nombre[MAX_NOMBRE];
  5.     int tlf;
  6. };
  7.  
  8.  

main.h
Código: C
  1.  
  2. #include "tdades.h"
  3.  
  4. void main()
  5. {
  6.     DATOS dat;
  7.     dat.nombre[0] = 'p';
  8.     dat.tlf = 887887;
  9. }
  10.  
  11.  

Epa

  • Miembro MUY activo
  • ***
  • Mensajes: 242
  • Nacionalidad: ar
    • Ver Perfil
Re: Estructura archivos .h y .c
« Respuesta #1 en: Jueves 26 de Noviembre de 2009, 19:31 »
0
Buenas.

Estas compilando en c o c++?
Tu archivo fuente tiene extension .c, si no me equivoco en C no hay typedef.

#include "tdades.h" <-- tdades o tdatos?

Saludos
The sweet smell of a great sorrow lies over the land.


System@32

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Estructura archivos .h y .c
« Respuesta #2 en: Jueves 26 de Noviembre de 2009, 19:47 »
0
Ups... error al traducir del catalan a castellano... xd

Lo estoy compilando en C, .c... El final resulta que las estructuras se tienen que poner en el .h tambien... muchas gracias por contestar...

shakka

  • Miembro HIPER activo
  • ****
  • Mensajes: 679
  • Nacionalidad: cr
    • Ver Perfil
    • http://mbrenes.com
Re: Estructura archivos .h y .c
« Respuesta #3 en: Jueves 26 de Noviembre de 2009, 21:08 »
0
Para este caso que no usa funciones, yo no me complicaria y solo tendria la cabecera tdatos.h

System@32

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Estructura archivos .h y .c
« Respuesta #4 en: Jueves 26 de Noviembre de 2009, 22:36 »
0
Al final lo he puesto en header, para quitar complicaciones... hasta que gane experiencia con includes mios, a lo facil...

SALU2!!!

locazopro

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Estructura archivos .h y .c
« Respuesta #5 en: Lunes 30 de Noviembre de 2009, 21:59 »
0
recuerda que lo que estas incluyendo en el main.c es tdatos.h, y hasta donde tengo entendido en las cabeceras las estructuras deben ir definidas allí, solo se admite declaraciones sin cuerpo para funciones únicamente, que alguien me corrija si me equivoco.

shakka

  • Miembro HIPER activo
  • ****
  • Mensajes: 679
  • Nacionalidad: cr
    • Ver Perfil
    • http://mbrenes.com
Re: Estructura archivos .h y .c
« Respuesta #6 en: Lunes 30 de Noviembre de 2009, 23:13 »
0
Cita de: "locazopro"
recuerda que lo que estas incluyendo en el main.c es tdatos.h, y hasta donde tengo entendido en las cabeceras las estructuras deben ir definidas allí, solo se admite declaraciones sin cuerpo para funciones únicamente, que alguien me corrija si me equivoco.

Que en las cabeceras solo se admita la declaracion del prototipo de la funcion no, pero es uena practica, es mas organizacion pero cuando se esta aprendiendo puede resultar algo complejo, de hecho aprendi primero en el main de la aplicacion podiendo todo, luego separe las funciones y estructuras en una o varias cabeceras las funciones, estructuras y demas organizado por relacion de las funciones, despues separe las cabeceras dejando prototipo, y estructuras y creando aparte una fichero de implementacion(c) con la definicion de las funciones, para que, una vez teniendolas operacionales y depuradas precompilandolas en ficheros de libreria solo para usarlas en la aplicacion.

capsula4

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Estructura archivos .h y .c
« Respuesta #7 en: Jueves 3 de Diciembre de 2009, 00:59 »
0
Estás usando primero typedef y luego declaras la estructura DATOS, deberia ser al revés