0 votes

Y a-t-il des erreurs de syntaxe dans l'extrait de code ici ?

typedef union YYSTYPE {
    int64_t         iConst;         // valeur constante
    float           fConst;         // valeur constante
    int             iAttrLocator;   // localisateur d'attribut (rowitem pour int/float ; offset+size pour bits)
    int             iFunc;          // identifiant de fonction
    int             iNode;          // index de noeud
} YYSTYPE;

Cela me semble valide, mais le cdt signale ce qui suit pour la ligne int64_t iConst;:

Multiple markers at this line:
    - erreur de syntaxe avant "int64_t"
    - pas de point-virgule à la fin de la structure ou de l'union

Il y a deux fichiers qui définissent int64_t, l'un est dans le projet lui-même (sphinxstd.h), l'autre se trouve dans le chemin d'inclusion indépendant du projet D:/MinGW/include/stdint.h, est-ce causé par ce conflit ?

MISE À JOUR

Je sélectionne le code ci-dessus, puis en appuyant sur ctrl-x et ctrl-s plus ctrl-v et ctrl-s, le problème disparaît !

Y a-t-il des utilisateurs de cdt ici ?

1voto

Dean Harding Points 40164

As-tu inclus #include ?

1voto

Justin Ethier Points 57486

Vous devriez probablement dire typedef union YYSTYPE_T pour donner à l'union un nom différent du typedef.

0voto

N 1.1 Points 7687
#include

typedef union {
   //
} YYSTYPE;

Le typedef ci-dessus est probablement ce que vous voulez. Il déclarera le nouveau type YYSTYPE

0voto

Billy ONeal Points 50631

Le compilateur ne sait pas quoi faire avec int64_t. Puisque ce n'est pas un type existant, il suppose que vous essayez de déclarer un identificateur. Étant donné que le symbole non défini casse la partie du compilateur qui analyse cette ligne, il se plaint du point-virgule manquant.

Assurez-vous que int64_t est défini.

Même si votre IDE vous permet de faire un clic droit et d'aller à stdint.h, cela ne signifie PAS que c'est inclus. Beaucoup d'IDE ont les en-têtes standard pré-indexés pour accélérer les choses.

Vous voudriez peut-être simplement le déclarer comme un long long et en rester là.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X