Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais
Cette documentation est archivée et n’est pas conservée.

C6244

Avertissement C6244 : la déclaration locale de <variable> masque la déclaration précédente dans <ligne> de <fichier>

Cet avertissement indique qu'une déclaration a le même nom qu'une déclaration dans la portée externe et masque la déclaration précédente. Vous ne pouvez pas faire référence à la déclaration précédente à partir de la portée locale. Toute utilisation prévue de la déclaration précédente revient à utiliser la déclaration locale. Cet avertissement identifie uniquement un chevauchement de portée, et non un chevauchement de durée de vie.

Le code suivant génère cet avertissement :

#include <stdlib.h>
#pragma warning(push)

// disable warning C4101: unreferenced local variable 
#pragma warning(disable: 4101) 

int i;
void f();
void (*pf)();

void test()
{
    // Hide global int with local function pointer
    void (*i)();  //Warning: 6244

     // Hide global function pointer with an int
    int pf;     //Warning: 6244
}
#pragma warning(pop)

Pour corriger cet avertissement, utilisez l'exemple de code suivant :

#include <stdlib.h>
#pragma warning(push)
// disable warning C4101: unreferenced local variable 
#pragma warning(disable: 4101) 

int g_i;          // modified global variable name
void g_f();       // modified global function name
void (*f_pf)();   // modified global function pointer name

void test()
{
    void (*i)();
    int pf;
}
#pragma warning(pop)

Lorsque vous utilisez l'allocation de mémoire, examinez le code pour déterminer si une allocation a été enregistrée dans une variable et libérée par une autre variable.

Afficher: