Comment puis-je supprimer l'avertissement C4091 VS: « typedef »: ignoré sur la gauche de « TABLEUR » quand aucune variable est déclarée
-
06-09-2019 - |
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 » ...
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.