Compilerwarnung (Stufe 3) C4341

Aktualisiert: November 2007

Fehlermeldung

'Wert': Wert mit Vorzeichen liegt außerhalb des Bereichs für Enumerationskonstanten
'value' : signed value is out of range for enum constant

Eine Aufzählungskonstante überschreitet die Grenze eines int. Der Wert der ungültigen Konstanten wurde nicht definiert. Konstanten müssen in ganze Zahlen zwischen –4.294.967.295 und +4.294.967.295 (mit Vorzeichen) aufgelöst werden.

Beachten Sie, dass diese Warnung bei Verwendung von /Ze die Stufe 3 und bei Verwendung von /Za die Stufe 1 hat.

Beispiel

Im folgenden Beispiel wird C4341 generiert:

// C4341.cpp
// compile with: /WX /W3 /c
enum ELEMENTS {
   Hydrogen = 1,
   Helium,
   Lithium,
   Beryllium,
   Impossibillium = 4294967296   // C4341
   // try the following line instead
   // Impossibillium = 4294967295
};

Das folgende Beispiel veranschaulicht, dass C4341 bei Verwendung von /Za eine Warnung der Stufe 1 ist.

// C4341b.cpp
// compile with: /W1 /LD /Za
enum ELEMENTS
{
   Hydrogen = 1,
   Helium,
   Lithium,
   Beryllium,
   Impossibillium = 4294967296  // C4341
   // try the following line instead
   // Impossibillium = 4294967295
};