IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Err compilation error: missing type-name in typedef-declaration|


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 62
    Points : 38
    Points
    38
    Par défaut Err compilation error: missing type-name in typedef-declaration|
    Bonjour a vous tous... Je suis debutante en c++ et
    j'ai une err de compilation sous C::B

    error: missing type-name in typedef-declaration|

    S.V.P pourriez vous m'aide pour l'erreur de code..

    Voici le code qui cause probleme...

    Merci de votre temps...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    typedef struct
    {
      float x;
      float y;
      float z;
      float r;
      float g;
      float b;
     };
    point p[8]={
       {-0.5,-0.5, 0.5,1.0,0.0,0.0},
       {-0.5, 0.5, 0.5,0.0,1.0,0.0},
       { 0.5, 0.5, 0.5,0.0,0.0,1.0},
       { 0.5,-0.5, 0.5,1.0,1.0,1.0},
       {-0.5,-0.5,-0.5,1.0,0.0,0.0},
       {-0.5, 0.5,-0.5,0.0,1.0,0.0},
       { 0.5, 0.5,-0.5,0.0,0.0,1.0},
       { 0.5,-0.5,-0.5,1.0,1.0,1.0}};
    int f[6][4]={
                 {0,1,2,3},
                 {3,2,6,7},
                 {4,5,6,7},
                 {0,1,5,4},
                 {1,5,6,2},
                 {0,4,7,3}};
     
     
     
    int WINAPI WinMain(int argc, char *argv[])
    {
        glClearColor(0.0,0.0,0.0,0.0);
        glColor3f(1.0,1.0,1.0);
        glPointSize(2.0);

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Doctorant
    Inscrit en
    Novembre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 15
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    Le nom de la structure est manquant ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    typedef struct nom_de_ta_structure
    {
      float x;
      float y;
      float z;
      float r;
      float g;
      float b;
     };

  3. #3
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Euh, presque.

    struct {...} déclare un type de structure non nommé.
    typedef A B; définit un type B comme étant un autre nom du type A

    Ce qu'il faut donc écrire, c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    typedef struct nom_complet_à_prefixer_par_struct {
      float x;
      float y;
      float z;
      float r;
      float g;
      float b;
    } nom_de_ta_structure;
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 62
    Points : 38
    Points
    38
    Par défaut resolu
    Gros merci pour votre reponse si rapide ...et votre temps:

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Leternel, c'était vrai en C, pas en C++
    Déclarer une structure suffit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    struct toto {};
    toto montoto;
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Ma remarque sur le typedef est vraie quand même.
    Un typedef ne peut pas ne pas avoir de nom après le type à nommer.

    Par contre, c'est vrai qu'en C++, on peut effectivement directement utiliser le nom sans passer par un typedef, comme tu l'a montré.

    C'est d'ailleurs l'usage normal.
    typedef ne devient utile que pour simplifier ou déclarer des types utilitaires.
    On n'a plus besoin de lui pour se passer du mot-clé struct à l'usage du type.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C++ Error] mstv.h(53): E2303 Type name expected
    Par cecileWaseda dans le forum C++Builder
    Réponses: 11
    Dernier message: 05/04/2014, 14h31
  2. Compilation impossible, missing type specifier
    Par hannibal.76 dans le forum Débuter
    Réponses: 4
    Dernier message: 13/03/2012, 10h39
  3. Réponses: 4
    Dernier message: 17/10/2006, 12h00
  4. error : does not name a type // je n'y comprends rien
    Par djobanaille dans le forum C++
    Réponses: 6
    Dernier message: 19/11/2005, 10h25
  5. Réponses: 5
    Dernier message: 17/06/2005, 19h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo