C6244

تحذير C6244: إعلان محلي من <متغير> يخفي التعريف السابق في <خط> <ملف>

هذا التحذير يشير إلى أن h تصريح كـ نفس الاسم كـ في نطاق خارجي إعلان ويخفي التعريف السابق. لن قادراً على الرجوع إلى التعريف السابق من داخل نطاق المحلي. أي الغرض من استخدام التعريف السابق سوف ينتهي استخدام إعلان محلي ويعرف هذا التحذير فقط يتراكب نطاق و لا يتراكب العمر.

مثال

يلي تعليمات برمجية ينشئ هذا التحذير:

#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)

إلى تصحيح هذا التحذير، استخدم نموذج تعليمات برمجية التالي:

#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)

عند التعامل مع تخصيص ذاكرة، راجع تعليمات برمجية لتحديد ما إذا تم حفظ تخصيص متغير واحد و تحرير بواسطة متغير آخر.