Freigeben über


Compilerwarnung (Stufe 1) C5033

"storage-class-Schlüsselwort (keyword)" ist keine unterstützte Speicherklasse mehr.

Die auto und register die Speicherklasse Schlüsselwort (keyword) wurden veraltet oder aus der C++-Sprache entfernt.

Hinweise

Visual Studio 2010 und höher: In C++11 ist die auto Schlüsselwort (keyword) kein C++-Speicherklassenbezeichner mehr, und die register Schlüsselwort (keyword) ist veraltet.

Visual Studio 2017, Version 15.7 und höher: (im /std:c++17 Modus und höher verfügbar): Die register Schlüsselwort (keyword) wird aus der C++-Sprache in C++17 und höher entfernt.

Der C++-Standard definiert eine ursprüngliche und eine überarbeitete Bedeutung für das auto-Schlüsselwort. Vor C++11 deklariert die auto Schlüsselwort (keyword) eine Variable in der automatischen Speicherklasse, d. h. eine Variable mit lokaler Lebensdauer. Ab C++11 deklariert die auto Schlüsselwort (keyword) eine Variable, deren Typ vom Initialisierungsausdruck in der Deklaration abgeleitet ist. Aus Gründen der Abwärtskompatibilität können Sie die /Zc:auto Compileroption verwenden, um die Bedeutung des auto Schlüsselwort (keyword) zu steuern.

Die register Schlüsselwort (keyword) war ursprünglich als Vorschlag für den Compiler gedacht, eine Variable in einem Register zu platzieren. Die Schlüsselwort (keyword) wurde von Compilern routinemäßig ignoriert. Stattdessen steuern Compiler, ob Variablen in Registern platziert werden, um Aufrufkonventionen und Optimierungsstufen zu erfüllen. Die register Schlüsselwort (keyword) ist im Standard für die zukünftige Verwendung reserviert.

Beispiel

// c5033.cpp
// compile by using: cl /c /std:c++17 c5033.cpp

register int value; // warning C5033: 'register' is no longer a supported storage class

Um dieses Problem zu beheben, entfernen Sie den register speicherklassifizierenden Schlüsselwort (keyword).

Siehe auch

Speicherklasse