[ Foro de C ]

prototipos typedef struct

28-Sep-2015 18:01
Invitado (Ztiger)
1 Respuestas

hola tengo el siguiente programa el cual es muy simple , solo toma  e imprime  datos
un programa muy simple de estructuras

 
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
 
 
typedef struct fecha{
 
int dia;
int mes;
int anio;
 
} fecha_t;
//estructura de contacto 
typedef struct contacto {
char nombre[80];
 int tel;
fecha_t;
 
} contacto_t;
 
 
 
 
//prototipos de las funciones
fecha_t crear_Fecha();
contacto_t crear_contacto();
void imprimir(contacto_t contacto);
void imprimir2(fecha_t fecha);
 
// funcion principal
int main() {
contacto_t c1;
fecha_t c2;
c1 = crear_contacto();
c2 =crear_Fecha();//invoco las funciones
 
imprimir(c1);
imprimir2(c2);
 
	system("pause");
	return 0;
}
 
 
 
 
//función para tomar datos de la estructura fecha
fecha_t crear_Fecha(){
	fecha_t nueva_fecha;
 
	//tomo el dia
	printf("\n ingrese el dia :");
	fflush(stdin);
	scanf("%d",&nueva_fecha.dia);
	//mes
	printf("\n ingrese el mes :");
	fflush(stdin);
	scanf("%d",&nueva_fecha.mes);
    //anio
	printf("\n ingrese el anio :");
	fflush(stdin);
	scanf("%d",&nueva_fecha.anio);
 
 
return nueva_fecha;
}
 
//función para tomar datos de estructura contacto
contacto_t crear_contacto(){
	contacto_t nuevo_contacto;
 
	//
	printf("\n ingrese el telefono :");
	fflush(stdin);
	scanf("%d",&nuevo_contacto.tel);
	//
	printf("\n ingrese el nombre :");
	fflush(stdin);
	gets(nuevo_contacto.nombre);
 
return nuevo_contacto;
}
//funcion para imprmir contacto
void imprimir(contacto_t contacto){
 
 
printf("\n%d\n%s\n"  ,contacto.tel,contacto.nombre);
 
}
void imprimir2(fecha_t fecha){
 
 
printf("\n%d\n%d\n%d" ,fecha.dia,fecha.mes,fecha.anio);
}
 


este funciona bien y sin errores , lo que quisiera saber es como declarar correctamente el prototipo de typedef struct , para poder poner las estructuras debajo del main



09-Oct-2015 12:02
Nacho Cabanes (+31)

No puedes. Deben estar antes del "main" si quieres que funcione en cualquier compilador de C. La alternativa, si quieres que el fuente principal sólo contenga "main", es mover las estructuras de datos a un fichero ".h" que incluyas desde tu programa principal.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)