Dela via


Kompilatorvarning (nivå 1) C5033

"storage-class-keyword" är inte längre en lagringsklass som stöds

Anmärkningar

Nyckelorden auto och register lagringsklassen har föråldrats eller tagits bort från C++-språket.

Visual Studio 2010 och senare: I C++11 är nyckelordet auto inte längre en C++-lagringsklassspecificerare och nyckelordet register är inaktuellt.

Visual Studio 2017 version 15.7 och senare: (tillgängligt i /std:c++17 läge och senare): Nyckelordet register tas bort från C++-språket i C++17 och senare standarder.

C++-standarden definierar ett original och en reviderad betydelse för nyckelordet auto . Före C++11 deklarerar nyckelordet auto en variabel i den automatiska lagringsklassen, det vill säga en variabel som har en lokal livslängd. Från och med C++11 deklarerar nyckelordet auto en variabel vars typ härleds från initieringsuttrycket i deklarationen. För bakåtkompatibilitet kan du använda kompilatoralternativet /Zc:auto för att styra nyckelordets auto innebörd.

Nyckelordet register var ursprungligen avsett som ett förslag till kompilatorn att placera en variabel i ett register. Nyckelordet ignorerades rutinmässigt av kompilatorer. I stället styr kompilatorer om variabler placeras i register för att uppfylla anropskonventioner och optimeringsnivåer. Nyckelordet register är reserverat i standarden för framtida användning.

Example

// 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

Åtgärda problemet genom att ta bort nyckelordet register storage-class-specifier.

Se även

Lagringsklass