Comment puis-je supprimer l'avertissement C4091 VS: « typedef »: ignoré sur la gauche de « TABLEUR » quand aucune variable est déclarée

StackOverflow https://stackoverflow.com/questions/913344

Question

Cet avertissement est déclenché plusieurs fois dans mon code par la même déclaration, qui se lit comme suit:

// Spreadsheet structure
typedef struct SPREADSHEET
{    
      int ID;               // ID of the spreadsheet    
      UINT nLines;          // Number of lines

      void CopyFrom(const SPREADSHEET* src)
      {
           ID = src->ID;
           nLines = src->nLines;
      }
};

Je ne veux pas tourner juste à côté de cet avertissement,

mais plutôt changer le code de sorte que l'avertissement ne vient pas!

NOTE: Je ne veux pas déclarer des variables ici (c'est un fichier d'en-tête), définir ce que devrait inclure la struct « TABLEUR » ...

Était-ce utile?

La solution

Supprimer typedef. Il est le chemin C de déclarer struct, C ++, il fait automatiquement pour vous.

Autres conseils

Vous devez ajouter un peu identifiant avant la ; terminaison, par exemple:.

typedef struct BLAH { ... } BLAH;

Il suffit de supprimer "typedef". Vous déclarez une nouvelle struct et le mot-clé typedef ne sert pas à cela. Vous utiliserez typedef pour définir un nouveau nom pour un type existant, comme celui-ci:

typedef int number;

Oui, la BLAH après l'accolade de fermeture est important de faire la typedef un valide. Vous pouvez supprimer le SPREADSHEET de la place actuelle et le maintenir entre le } et le ;.

Mon interprétation de cet avertissement est que le compilateur indique que le mot-clé typedef est inutile, car une variable n'est pas déclarée. et donc si l'intention du code est de déclarer simplement struct le typedef est superflu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top