Typedef

Résolu
sifane.a Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
bjr, est ce que vous pouvez me dire comment on uitilise un "typedef" dans une structure.
je note que notre prof ns a dit qu'on utilise ce mot cle pour changer un nom s'il trop long par un autre plus petit.
ex:
struct date naissance;
{
int.....
};
typedef date naissance DATE;
merci de répondre tré vite.

4 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bah, je viens de te donner la solution dans le post ...
typedef struct dateNaissance dateNaissance;
struct dateNaissance;
{
int.....
}; 
De plus, attention au nom de ta structure, tu n'as pas le droit de mettre des espaces, c'est pour ça que je te l'ai corrigé en dateNaissance.
1
sifane.a Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
merci cété vraiment la probléme.
donc si je veu changer le dateNaissance en DATE ,j'aurai qu'a faire ce ke tu m'a dit en changeant simplement comme ca:
typedef struct dateNaissance DATE;
struct DATE;
{
int...
};
mais ce ";" aprés le DATE me parais absurde...
tt fois mm si je l'utilise ac ou sans ";" il me donne préske "30" erreur dans mon code.
si tu veut je peu t'envoyer mon code pour l'examiner.
merci
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > sifane.a Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
presque.
En :
typedef struct dateNaissance DATE;
struct dateNaissance
{
int...
}; 

DATE toto; //pour déclarer une structure dateNaissance (plus besoin d'utiliser le mot clé struct.


Et effectivement pour le point virgule après struct. Une faute d'inattention. :)
0
sifane.a Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
bn dsl,mais tu vas travailler un peu ac moi :
voila un programme qui affiche les infos d'un etudiant entrés au clavier:
#include<stdio.h>
#define etd 2;
typedef struct etudiant E;
struct etudiant
{
char nom[10];
char prenom[10];
char adresse[20];
typedef struct dateNaissance DATE;
struct dateNaissance
{
int jour;
int mois;
int annee;
};

};

main()
{
int etudiant[etd];
int i;
for(i=0;i<etd;i++)
{
printf("nom");
scanf("%s",&etudiant[i].nom);
printf("prenom");
scanf("%s",&etudiant[i].prenom);
printf("jour naissance");
scanf("%s",&etudiant[i].DATE.jour);
printf("mois");
scanf("%s",&etudiant[i].DATE.mois);
printf("annee");
scanf("%s",&etudiant[i].DATE.annee);
printf("adresse");
scanf("%s",&etudiant[i].adresse);
}
for(i=0;i<etd;i++)
{
printf("%s",etudiant[i].nom);
printf("%s",etudiant[i].prenom);
printf("%s",etudiant[i].DATE.jour);
printf("%s",etudiant[i].DATE.mois);
printf("%s",etudiant[i].DATE.annee);
printf("%s",etudiant[i].adresse);
}
}
j'arrive a des erreur que je ne sais pas corriger, je tape simplement ce que j'ai apris et je me plante.
un coup de main svp.
merci.
0
sifane.a Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   > sifane.a Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
svp,je suis entrain de metre des modification mais le probléme subsiste,merci de m'aider.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut
typedef struct dateNaissance dateNaissance;
struct dateNaissance;
{
int.....
}; 

Tu peux même inclure le typedef dans truct directement :
typedef struct dateNaissance {
int ...
} dateNaissance;

0
sifane.a Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
merci fiddy,donc si je veu apliker cela a l'exemple ke jé présenté avant,ca serai.....
0
infos
 
svp qu'elle est la faute ici
typedef struct date {
int jour;
int mois;
int annee;
}date;
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,
Il n'y a pas de fautes dans ton code...
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut
J'ai corrigé quelques fautes (notamment le ; après le define)
Là il restera à voir les problèmes de buffer clavier.
Cdlt
#include<stdio.h>
#define etd 2 
typedef struct dateNaissance DATE;
struct dateNaissance
{
    int jour;
    int mois;
    int annee;
};
typedef struct etudiant E;
struct etudiant
{
    char nom[10];
    char prenom[10];
    char adresse[20];
    DATE date;
};

int main(void)
{
    E etudiant[etd];
    int i;
    for(i=0;i<etd;i++)
    {
        printf("nom");
        scanf("%s",etudiant[i].nom);
        printf("prenom");
        scanf("%s",etudiant[i].prenom);
        printf("jour naissance");
        scanf("%d",&etudiant[i].date.jour);
        printf("mois");
        scanf("%d",&etudiant[i].date.mois);
        printf("annee");
        scanf("%d",&etudiant[i].date.annee);
        printf("adresse");
        scanf("%s",etudiant[i].adresse);
    }
    for(i=0;i<etd;i++)
    {
        printf("%s",etudiant[i].nom);
        printf("%s",etudiant[i].prenom);
        printf("%d",etudiant[i].date.jour);
        printf("%d",etudiant[i].date.mois);
        printf("%d",etudiant[i].date.annee);
        printf("%s",etudiant[i].adresse);
    }
    return 0;
} 
0
sifane.a Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
je suis trs reconnaissant ,le programme tourne bien ,c'est la partis la plus simple,le but de ce programme n'été po seulement a afficher mais a un autre but, je vais continuer et si je me trouve encor dans un probléme je vs poste le sujet.
encor merci ,chui trop content :)
0