Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os artigos nesta seção da documentação explicam um subconjunto das mensagens de erro geradas pelo compilador.
Importante
Os compiladores e ferramentas de build do Visual Studio podem relatar muitos tipos de erros e avisos. Depois que um erro ou aviso for encontrado, as ferramentas de build poderão fazer suposições sobre a intenção do código e tentar continuar, para que mais problemas possam ser relatados ao mesmo tempo. Se as ferramentas fizerem a suposição errada, erros ou avisos posteriores poderão não se aplicar ao seu projeto. Quando você corrige problemas em seu projeto, sempre comece com o primeiro erro ou aviso relatado e recompile com frequência. Uma correção pode resolver vários erros subsequentes.
Para obter ajuda em uma mensagem de diagnóstico específica no Visual Studio, selecione-a na janela Saída e pressione a tecla F1. O Visual Studio abre a página de documentação desse erro, se houver uma. Você também pode usar a ferramenta de pesquisa na parte superior da página para encontrar artigos sobre erros ou avisos específicos. Ou navegue pela lista de erros e avisos por ferramenta e digite no sumário nesta página.
Observação
Nem todos os erros ou avisos do Visual Studio estão documentados. Em muitos casos, a mensagem de diagnóstico fornece todas as informações que estão disponíveis. Se você tiver desembarcado nesta página e achar que a mensagem de erro ou aviso precisa de explicação adicional, informe-nos usando os botões de comentários nesta página. Se você achar que o erro ou o aviso está errado ou encontrou outro problema com o conjunto de ferramentas, relate um problema de produto no site da Developer Community. Você também pode enviar comentários e inserir bugs no IDE. No Visual Studio, vá para a barra de menus e escolha Ajuda > Enviar Comentários > Relatar um Problemaou envie uma sugestão usando Ajuda > Enviar Comentários > Sugerir um recurso. Foram criados alguns tópicos de erro do compilador que não são emitidos pelo compilador e agora redirecionam para esta página.
Você pode encontrar assistência adicional para erros e avisos em fóruns do Microsoft Q&A C++. Alternativamente, pesquise o número do erro ou aviso no site da Developer Community do Visual Studio C++. Você também pode pesquisar o Stack Overflow para encontrar soluções.
Para obter links para ajuda adicional e recursos da comunidade, confira Ajuda e Comunidade do Visual C++.
Mensagens de erro
| Erro | Mensagem |
|---|---|
| Erro do compilador C2100 | você não pode desreferenciar um operando do tipo 'type' |
| Erro do compilador C2101 | '&' em constante |
| Erro do compilador C2102 | '&' requer l-value |
| Erro do compilador C2103 | '&' em variável de registro |
| Erro do compilador C2104 | '&' no campo de bits ignorado |
| Erro do compilador C2105 | 'operator' precisa de l-value |
| Erro do compilador C2106 | 'operator': operando à esquerda deve ser l-value |
| Erro do compilador C2107 | índice ilegal, indireção não permitida |
| Erro do compilador C2108 | o subscrito não é de tipo integral |
| Erro do compilador C2109 | o subscrito requer um tipo de matriz ou ponteiro |
| Erro do compilador C2110 | '+': não é possível adicionar dois ponteiros |
| Erro do compilador C2111 | '+': adição de ponteiros requer operando integral |
| Erro do compilador C2112 | '-': subtração de ponteiros requer operando integral ou ponteiro |
| Erro do compilador C2113 | '-': ponteiro só pode ser subtraído de outro ponteiro |
| Erro do compilador C2114 | 'operator': ponteiro à esquerda; precisa de um valor integral à direita |
| Erro do compilador C2115 | 'operator': tipos incompatíveis |
| Erro do compilador C2116 | 'name': listas de parâmetros de função não correspondem entre declarações |
| Erro do compilador C2117 | 'identifier' : estouro de limites da matriz |
| Erro do compilador C2118 | subscrito negativo |
| Erro do compilador C2119 | 'identifier': não é possível deduzir o tipo para 'tipo' de um inicializador vazio |
| Erro do compilador C2120 | 'void' não pode ser combinado com qualquer outro especificador de tipo |
| Erro do compilador C2121 | '#': caractere inválido: possivelmente o resultado de uma expansão de macro |
| Erro do compilador C2122 | 'identifier': o parâmetro de protótipo na lista de nomes é ilegal |
| Erro do compilador C2123 | 'identifier': modelos de alias não podem ser explicitamente ou parcialmente especializados |
| Erro do compilador C2124 | divisão ou mod por zero |
| Erro do compilador C2125 | 'constexpr' é incompatível com 'token' |
| Erro do compilador C2126 | 'identifier' não pode ser declarado com o especificador 'constexpr' |
| Erro do compilador C2127 | 'identifier': inicialização ilegal da entidade 'constexpr' com uma expressão não constante |
| Erro do compilador C2128 | 'function': alloc_text/same_seg aplicável apenas a funções com vínculo a C |
| Erro do compilador C2129 | função estática 'identifier' declarada, mas não definida |
| Erro do compilador C2130 | #line esperava uma cadeia de caracteres contendo o nome de arquivo, encontrou 'token' |
| Erro do compilador C2131 | a expressão não foi avaliada como uma constante |
| Erro do compilador C2132 | erro de sintaxe: identificador inesperado |
| Erro do compilador C2133 | 'identificador': tamanho desconhecido |
| Erro do compilador C2134 | 'function' : a chamada não resulta em uma expressão de constante |
| Erro do compilador C2135 | 'identifier': você não pode aplicar 'operator' a um campo de bits |
| Erro do compilador C2136 | contrato de API de criação não permitido |
| Erro do compilador C2137 | constante de caractere vazio |
| Erro do compilador C2138 | ilegal definir uma enumeração sem nenhum membro |
| Erro do compilador C2139 | 'class': uma classe indefinida não é permitida como um argumento para a característica de tipo intrínseco do compilador 'trait' |
| Erro do compilador C2140 | 'type': um tipo que é dependente de um parâmetro de tipo genérico não é permitido como um argumento para a característica de tipo intrínseca do compilador 'trait' |
| Erro do compilador C2141 | estouro na dimensão da matriz |
| Erro do compilador C2142 | declarações de função diferem, parâmetros de variáveis especificados apenas em uma delas |
| Erro do compilador C2143 | erro de sintaxe: 'token1' ausente antes de 'token2' |
| Erro do compilador C2144 | erro de sintaxe: 'type' deve ser precedido por 'token2' |
| Erro do compilador C2145 | erro de sintaxe: 'token' ausente antes do identificador |
| Erro do compilador C2146 | erro de sintaxe: 'token' ausente antes do identificador 'identifier' |
| Erro do compilador C2147 | erro de sintaxe: 'token' é uma nova palavra-chave |
| Erro do compilador C2148 | o tamanho total da matriz não deve exceder 0xvalue bytes |
| Erro do compilador C2149 | 'identifier': o campo de bits nomeado não pode ter largura zero |
| Erro do compilador C2150 | 'identifier': o campo de bits deve ser do tipo 'int', 'signed int' ou 'unsigned int' |
| Erro do compilador C2151 | mais de um atributo de linguagem |
| Erro do compilador C2152 | 'identifier' : ponteiros para funções com atributos diferentes |
| Erro do compilador C2153 | os literais de inteiros devem ter pelo menos um dígito |
| Erro do compilador C2154 | 'type': somente o tipo de enumeração é permitido como um argumento para compilar a característica de tipo intrínseco '__underlying_type' |
| Erro do compilador C2155 | '?' : tipo de ponteiro, expressão aritmética esperada ou operando esquerdo inválidos |
| Erro do compilador C2156 | pragma deve estar fora da função |
| Erro do compilador C2157 | 'identifier': deve ser declarado antes do uso na lista de pragma |
| Erro do compilador C2158 | 'type': a diretiva #pragma make_public tem suporte atualmente apenas para tipos nativos não modelo |
| Erro do compilador C2159 | mais de uma classe de armazenamento especificada |
| Erro do compilador C2160 | '##' não pode ocorrer no início de uma definição de macro |
| Erro do compilador C2161 | '##' não pode ocorrer no fim de uma definição de macro |
| Erro do compilador C2162 | parâmetro formal de macro esperado |
| Erro do compilador C2163 | 'função': não disponível como uma função intrínseca |
| Erro do compilador C2164 | 'function': função intrínseca não declarada |
| Erro do compilador C2165 | 'modifier': não é possível modificar ponteiros para dados |
| Erro do compilador C2166 | l-value especifica um objeto constante |
| Erro do compilador C2167 | 'function': muitos parâmetros reais para função intrínseca |
| Erro do compilador C2168 | 'function': poucos parâmetros reais para função intrínseca |
| Erro do compilador C2169 | 'function': função intrínseca, não pode ser definida |
| Erro do compilador C2170 | 'identifier': não declarado como uma função, não pode ser intrínseco |
| Erro do compilador C2171 | O operador 'operator' não pode ser aplicado a um operando do tipo 'type' |
| Erro do compilador C2172 | 'function': o parâmetro real não é um ponteiro: parâmetro number |
| Erro do compilador C2173 | 'function': o parâmetro real não é um ponteiro: parâmetro number, lista de parâmetros number2 |
| Erro do compilador C2174 | 'function': o parâmetro real tem o tipo 'void': parâmetro number, lista de parâmetros number |
| Erro do compilador C2175 | 'locale' : localidade inválida |
| Erro do compilador C2176 | uma instrução return não pode aparecer no manipulador de uma função de bloco try associada a um construtor |
| Erro do compilador C2177 | constante grande demais |
| Erro do compilador C2178 | O 'identifier' não pode ser declarado com o especificador 'specifier' |
| Erro do compilador C2179 | 'type': um argumento de atributo não pode usar parâmetros de tipo |
| Erro do compilador C2180 | a expressão de controle é do tipo 'type' |
| Erro do compilador C2181 | else inválido sem if correspondente |
| Erro do compilador C2182 | 'identifier': esse uso de 'void' não é válido |
| Erro do compilador C2183 | erro de sintaxe: unidade de tradução está vazia |
| Erro do compilador C2184 | 'type': tipo inválido para expressão __except |
| Erro do compilador C2185 | 'identifier' : alocação com base ilegal |
| Erro do compilador C2186 | 'operator': operando inválido do tipo 'void' |
| Erro do compilador C2187 | erro de sintaxe: o 'token' não era esperado aqui |
| Erro do compilador C2188 | 'number': muito grande para caractere largo |
| Erro do compilador C2189 | o atributo 'alignas' não pode ser aplicado a um campo de bits, um parâmetro de função, uma declaração de exceção ou uma variável declarada com a classe de armazenamento 'register' |
| Erro do compilador C2190 | primeira lista de parâmetros mais longa que a segunda |
| Erro do compilador C2191 | segunda lista de parâmetros mais longa que a primeira |
| Erro do compilador C2192 | declaração do parâmetro 'number' diferente |
| Erro do compilador C2193 | 'identifier' : já em um segmento |
| Erro do compilador C2194 | 'identifier': é um segmento de texto |
| Erro do compilador C2195 | 'identifier': é um segmento de dados |
| Erro do compilador C2196 | valor de caso 'value' já usado |
| Erro do compilador C2197 | 'function': número excedente de argumentos para chamada |
| Erro do compilador C2198 | 'function': número insuficiente de argumentos para chamada |
| Erro do compilador C2199 | erro de sintaxe: encontrado 'identifier (' no escopo global (foi uma declaração pretendida?) |
Confira também
Compilador C/C++ e erros e avisos das ferramentas de build
Erros do compilador C2001 - C3999, C7000 - C7999