Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 compilação do Visual Studio podem relatar muitos tipos de erros e avisos. Depois que um erro ou aviso é encontrado, as ferramentas de compilação podem 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 podem não se aplicar ao seu projeto. Quando você corrige problemas em seu projeto, sempre comece com o primeiro erro ou aviso relatado e recrie com frequência. Uma correção pode resolver vários erros subsequentes.
Para obter ajuda sobre uma mensagem de diagnóstico específica no Visual Studio, selecione-a na janela Output e pressione a tecla F1. O Visual Studio abre a página de documentação para esse erro, se existir. 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 o índice nesta página.
Observação
Nem todos os erros ou avisos do Visual Studio são documentados. Em muitos casos, a mensagem de diagnóstico fornece todas as informações disponíveis. Se você chegou a esta página e acha que a mensagem de erro ou aviso precisa de explicações adicionais, informe-nos usando os botões de feedback nesta página. Se você acha que o erro ou aviso está errado, ou encontrou outro problema com o conjunto de ferramentas, relate um problema de produto no site Comunidade de Desenvolvedores. Você também pode enviar comentários e inserir bugs dentro do IDE. No Visual Studio, vá para a barra de menus e escolha Ajuda > Enviar Comentários > Relatar um Problemaou enviar uma sugestão usando Ajuda > Enviar Comentários > Sugerir um recurso. Alguns tópicos de erros do compilador que não são emitidos pelo compilador foram criados 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++. Ou, procure o número de erro ou aviso no Visual Studio C++ Developer Community site. Você também pode pesquisar Stack Overflow para encontrar soluções.
Para obter links para ajuda adicional e recursos da comunidade, consulte Ajuda do Visual C++ eComunidade.
Mensagens de erro
| Erro | Mensagem |
|---|---|
| Erro do compilador C2100 | Não é possível cancelar a referência de um operando do tipo 'type' |
| Erro do compilador C2101 | '&' em constante |
| Erro do compilador C2102 | '&' requer valor L |
| Erro do compilador C2103 | '&' na variável de registo |
| Erro do compilador C2104 | '&' ignorado no campo de bits |
| Erro do compilador C2105 | 'Operador' precisa de um valor do tipo 'l' |
| Erro de compilador C2106 | 'operador': o operando esquerdo deve ter valor L |
| Erro do compilador C2107 | índice ilegal, indireção não permitida |
| Erro de compilador C2108 | subscrição não é do tipo integral |
| Erro de compilador C2109 | O subscrito requer tipo de matriz ou ponteiro |
| Erro do compilador C2110 | '+': não é possível adicionar dois ponteiros |
| Erro do compilador C2111 | '+': a adição do ponteiro requer um operando integral |
| Erro de compilador C2112 | '-': a subtração do ponteiro requer um operando inteiro ou um operando de ponteiro |
| Erro de compilador C2113 | '-': o ponteiro só pode ser subtraído de outro ponteiro |
| Erro do compilador C2114 | «Operador», ponteiro à esquerda; precisa de valor integral à direita |
| Erro do compilador C2115 | «Operador»: tipos incompatíveis |
| Erro de compilador C2116 | 'name': as listas de parâmetros de função não correspondem entre declarações |
| Erro do compilador C2117 | 'identificador': estouro dos limites da matriz |
| Erro do compilador C2118 | subscrito negativo |
| Erro de compilador C2119 | 'identificador': o tipo para 'tipo' não pode ser deduzido de um inicializador vazio |
| Erro de compilador C2120 | 'void' não pode ser combinado com qualquer outro especificador de tipo |
| Erro de compilador C2121 | '#': caractere inválido: possivelmente o resultado de uma expansão de macro |
| Erro do compilador C2122 | 'identificador': parâmetro protótipo na lista de nomes ilegal |
| Erro do compilador C2123 | 'identificador': os modelos de alias não podem ser explícita ou parcialmente especializados |
| Erro de compilador C2124 | dividir ou mod por zero |
| Erro de compilador C2125 | 'constexpr' é incompatível com 'token' |
| Erro de compilador C2126 | O «identificador» não pode ser declarado com o especificador «constexpr» |
| Erro do compilador C2127 | 'identificador': inicialização ilegal da entidade 'constexpr' com uma expressão não constante |
| Erro do compilador C2128 | «Função»: alloc_text/same_seg aplicável apenas a funções com ligação C |
| Erro de compilador C2129 | função estática «identificador» declarada mas não definida |
| Erro do compilador C2130 | #line esperava uma string contendo o nome do arquivo, encontrado 'token' |
| Erro de compilador C2131 | a expressão não foi avaliada como uma constante |
| Erro de compilador C2132 | Erro de sintaxe: identificador inesperado |
| Erro de compilador C2133 | «Identificador»: tamanho desconhecido |
| Erro de compilador C2134 | 'função': a chamada não resulta numa expressão constante |
| Erro de compilador C2135 | 'identificador': não é possível aplicar 'operador' a um campo de bits |
| Erro de compilador C2136 | contrato de API de criação não permitido |
| Erro de compilador C2137 | constante de caractere vazio |
| Erro de compilador C2138 | é ilegal definir uma enumeração sem nenhum membro |
| Erro de compilador C2139 | 'classe': uma classe indefinida não é permitida como argumento para compilar o traço de tipo intrínseco 'trait' |
| Erro do compilador C2140 | 'type': um tipo que depende de um parâmetro de tipo genérico não é permitido como argumento para compilar o traço de tipo intrínseco 'trait' |
| Erro do compilador C2141 | excesso no tamanho da matriz |
| Erro do compilador C2142 | declarações de função diferem, parâmetros variáveis especificados apenas em um deles |
| Erro do compilador C2143 | erro de sintaxe: faltando 'token1' antes de 'token2' |
| Erro de compilador C2144 | erro de sintaxe: 'type' deve ser precedido por 'token2' |
| Erro de compilador C2145 | Erro de sintaxe: 'token' ausente antes do identificador |
| Erro do compilador C2146 | Erro de sintaxe: faltando 'token' antes do identificador 'identifier' |
| Erro de compilador C2147 | Erro de sintaxe: 'token' é uma nova palavra-chave |
| Erro do compilador C2148 | O tamanho total do array não deve exceder 0xvalor bytes |
| Erro do compilador C2149 | 'identificador': o campo de bit nomeado não pode ter largura zero |
| Erro do compilador C2150 | 'identificador': o campo de bits deve ter o tipo 'int', 'signed int' ou 'unsigned int' |
| Erro de compilador C2151 | mais de um atributo de idioma |
| Erro do compilador C2152 | 'identificador': ponteiros para funções com atributos diferentes |
| Erro do compilador C2153 | literais inteiros devem ter pelo menos um dígito |
| Erro de compilador C2154 | 'type': apenas o tipo de enumeração é permitido como argumento para o traço intrínseco do tipo do compilador '__underlying_type' |
| Erro de compilador C2155 | '?': operando esquerdo inválido, aritmética esperada ou tipo de ponteiro |
| Erro do compilador C2156 | pragma deve estar fora da função |
| Erro de compilador C2157 | «Identificador»: deve ser declarado antes da utilização na lista Pragma |
| Erro de compilador C2158 | 'tipo': Atualmente, a diretiva #pragma make_public é suportada apenas para tipos nativos que não sejam de 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 final de uma definição de macro |
| Erro de compilador C2162 | parâmetro formal de macro esperado |
| Erro de compilador C2163 | «Função»: não disponível como função intrínseca |
| Erro de compilador C2164 | 'função': função intrínseca não declarada |
| Erro de compilador C2165 | 'modificador': não é possível modificar ponteiros para dados |
| Erro de compilador C2166 | l-value indica o objeto constante |
| Erro de compilador C2167 | «Função»: demasiados parâmetros reais para a função intrínseca |
| Erro do compilador C2168 | «Função»: muito poucos parâmetros reais para a função intrínseca |
| Erro do compilador C2169 | «função»: função intrínseca, não pode ser definida |
| Erro do compilador C2170 | «identificador»: não declarado como função, não pode ser intrínseco |
| Erro do compilador C2171 | operador «operador» não pode ser aplicado a um operando do tipo «tipo» |
| Erro do compilador C2172 | 'function': o parâmetro real não é um ponteiro: parâmetro número |
| Erro do compilador C2173 | «Função»: o parâmetro real não é um ponteiro: número do parâmetro, número da lista de parâmetros |
| Erro do compilador C2174 | «Função»: o parâmetro real tem o tipo «void»: número do parâmetro, número da lista de parâmetros |
| Erro do compilador C2175 | 'localidade': localidade inválida |
| Erro de compilador C2176 | Uma instrução return não pode aparecer no manipulador de um function-try-block associado a um construtor |
| Erro de compilador C2177 | constante muito grande |
| Erro de compilador C2178 | O «identificador» não pode ser declarado com o especificador «especificador» |
| Erro de compilador C2179 | 'type': um argumento de atributo não pode usar parâmetros de tipo |
| Erro do compilador C2180 | A expressão de controle tem o tipo 'type' |
| Erro de compilador C2181 | ilegal senão sem um 'if' correspondente |
| Erro de compilador C2182 | 'identificador': este uso de 'nulo' não é válido |
| Erro do compilador C2183 | erro de sintaxe: a unidade de tradução está vazia |
| Erro de compilador C2184 | «tipo»: tipo ilegal na expressão __except |
| Erro do compilador C2185 | «Identificador»: atribuição com base em ilícitos |
| Erro de compilador C2186 | «Operador»: operando ilegal do tipo «void» |
| Erro do compilador C2187 | Erro de sintaxe: 'token' foi inesperado aqui |
| Erro do compilador C2188 | 'número': demasiado grande para carácter amplo |
| Erro de compilador C2189 | O atributo 'alignas' não pode ser aplicado a um campo de bits, a um parâmetro de função, a uma declaração de exceção ou a uma variável declarada com classe de armazenamento 'register' |
| Erro do compilador C2190 | A lista de parâmetros da primeira é mais longa do que a da segunda. |
| Erro de compilador C2191 | segunda lista de parâmetros mais longa do que a primeira |
| Erro de compilador C2192 | parâmetro «número» declaração diferente |
| Erro de compilador C2193 | «identificador»: já está em um segmento |
| Erro de compilador C2194 | «identificador»: é um segmento de texto |
| Erro de compilador C2195 | «identificador»: é um segmento de dados |
| Erro de compilador C2196 | o valor 'valor' já foi utilizado |
| Erro de compilador C2197 | 'função': demasiados argumentos para a chamada |
| Erro de compilador C2198 | 'função': poucos argumentos para a chamada |
| Erro do compilador C2199 | Erro de sintaxe: Encontrado 'identificador (' no escopo global (foi pretendida uma declaração?) |
Ver também
Erros e avisos do compilador C/C++ e das ferramentas de compilação
Erros do compilador C2001 - C3999, C7000 - C7999