Share via


Derleyici Uyarısı (düzey 4) C4456

'identifier' bildirimi önceki yerel bildirimi gizler

Yerel kapsamda tanımlayıcı bildirimi, aynı ada ait önceki yerel bildirimin bildirimini gizler. Bu uyarı, yerel kapsamdaki tanımlayıcıya yapılan başvuruların amacınız olabilecek veya olmayan önceki yerel sürüme değil, yerel olarak bildirilen sürüme çözümlendiğini bilmenizi sağlar. Bu sorunu çözmek için, yerel değişkenlere diğer yerel adlarla çakışmayan adlar vermenizi öneririz.

Örnek

Aşağıdaki örnek C4456 oluşturur çünkü döngü denetim değişkeni int x ve içindeki member_fn yerel değişken double x aynı adlara sahiptir. Bu sorunu çözmek için yerel değişkenler için farklı adlar kullanın.

// C4456_hide.cpp
// compile with: cl /W4 /c C4456_hide.cpp

struct S {
    void member_fn(unsigned u) {
        double x = 0;
        for (int x = 0; x < 10; ++x) {  // C4456
            u += x; // uses local int x
        }
        x += u; // uses local double x
    }
} s;