Partilhar via


Aviso do compilador (nível 1) C5033

'storage-class-keyword' não é mais uma classe de armazenamento suportada

Observações

As auto palavras-chave da classe de armazenamento e register foram preteridas ou removidas da linguagem C++.

Visual Studio 2010 e posterior: Em C++11, a auto palavra-chave não é mais um especificador de classe de armazenamento C++ e a register palavra-chave foi preterida.

Visual Studio 2017 versão 15.7 e posterior: (disponível no /std:c++17 modo e posterior): A register palavra-chave é removida da linguagem C++ em C++17 e padrões posteriores.

O padrão C++ define um significado original e revisado para a auto palavra-chave. Antes do C++11, a auto palavra-chave declara uma variável na classe de armazenamento automático , ou seja, uma variável que tem um tempo de vida local. A partir de C++11, a auto palavra-chave declara uma variável cujo tipo é deduzido da expressão de inicialização em sua declaração. Para compatibilidade com versões anteriores, você pode usar a /Zc:auto opção de compilador para controlar o significado da auto palavra-chave.

A register palavra-chave foi originalmente concebida como uma sugestão ao compilador para colocar uma variável em um registro. A palavra-chave era rotineiramente ignorada pelos compiladores. Em vez disso, os compiladores controlam se as variáveis são colocadas em registros para satisfazer convenções de chamada e níveis de otimização. A register palavra-chave está reservada na norma para uso futuro.

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

Para corrigir esse problema, remova a palavra-chave especificador de register classe de armazenamento.

Consulte também

Classe de armazenamento