
Problema al incluir struct en cabeceras.h
Publicado por Diego (150 intervenciones) el 30/05/2016 00:34:27
Buenas tardes, tengo un problema al intentar usar estructuras en cabeceras.
Enunciado:
Defina una estructura que represente una fecha.
(a) Implemente una función que reciba una variable del tipo creado por referencia e inicialice los valores en el 1 de enero de 1970
Fin enunciado;
Yo suelo usar cabeceras al momento de compilar el programa, pero con estructuras no puede hacer funcionar los .h
Asi que tuve que hacer las funciones y el programa principal en el mismo archivo.
Main.c
iniciar.h:
iniciar.c:
Yo quiero quitar las funciones del main.c e invocar #include "iniciar.h" con: gcc -Wall -o main.exe main.c iniciar.c
Main.c
Cuando intento modularizar con las cabeceras me arroja el error: unknown type name ‘T_fecha’
no encontré ejemplos del uso de struct en una cabecera.h y de ahí mi desconcierto
¿Como debería declarar las estructuras para que sean reconocidas por las cabeceras.h?
Enunciado:
Defina una estructura que represente una fecha.
(a) Implemente una función que reciba una variable del tipo creado por referencia e inicialice los valores en el 1 de enero de 1970
Fin enunciado;
Yo suelo usar cabeceras al momento de compilar el programa, pero con estructuras no puede hacer funcionar los .h
Asi que tuve que hacer las funciones y el programa principal en el mismo archivo.
Main.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
typedef struct {
unsigned int dia;
unsigned int mes;
unsigned int anio;
}T_fecha;
void setear(T_fecha *fecha);
int main(int argc, char *argv[]){
T_fecha fecha;
setear(&fecha);
printf("%d/%d/%d\n", fecha.dia, fecha.mes, fecha.anio);
return 0;
}
void setear(T_fecha *fecha)
{
(*fecha).dia = 1;
(*fecha).mes = 1;
(*fecha).anio = 1970;
}
iniciar.h:
1
void setear(T_fecha *);
iniciar.c:
1
2
3
4
5
6
void setear(T_fecha *fecha)
{
(*fecha).dia = 1;
(*fecha).mes = 1;
(*fecha).anio = 1970;
}
Yo quiero quitar las funciones del main.c e invocar #include "iniciar.h" con: gcc -Wall -o main.exe main.c iniciar.c
Main.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include "iniciar.h"
typedef struct {
unsigned int dia;
unsigned int mes;
unsigned int anio;
}T_fecha;
int main(int argc, char *argv[]){
T_fecha fecha;
setear(&fecha);
printf("%d/%d/%d\n", fecha.dia, fecha.mes, fecha.anio);
return 0;
}
}
Cuando intento modularizar con las cabeceras me arroja el error: unknown type name ‘T_fecha’
no encontré ejemplos del uso de struct en una cabecera.h y de ahí mi desconcierto
¿Como debería declarar las estructuras para que sean reconocidas por las cabeceras.h?
Valora esta pregunta


0