Typedef

Résolu/Fermé
sifane.a Messages postés 16 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 12 décembre 2008 - 11 déc. 2008 à 15:22
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 24 mai 2011 à 22:35
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
11 déc. 2008 à 16:07
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 jeudi 11 décembre 2008 Statut Membre Dernière intervention 12 décembre 2008
11 déc. 2008 à 16:22
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844 > sifane.a Messages postés 16 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 12 décembre 2008
11 déc. 2008 à 16:30
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 jeudi 11 décembre 2008 Statut Membre Dernière intervention 12 décembre 2008 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
11 déc. 2008 à 16:41
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 jeudi 11 décembre 2008 Statut Membre Dernière intervention 12 décembre 2008 > sifane.a Messages postés 16 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 12 décembre 2008
11 déc. 2008 à 17:09
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
11 déc. 2008 à 15:46
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 jeudi 11 décembre 2008 Statut Membre Dernière intervention 12 décembre 2008
11 déc. 2008 à 16:02
merci fiddy,donc si je veu apliker cela a l'exemple ke jé présenté avant,ca serai.....
0
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
Modifié par fiddy le 24/05/2011 à 22:36
Bonjour,
Il n'y a pas de fautes dans ton code...
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
11 déc. 2008 à 17:14
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 jeudi 11 décembre 2008 Statut Membre Dernière intervention 12 décembre 2008
11 déc. 2008 à 17:46
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