Compartilhar via


Avisos do compilador Microsoft C/C++ C4400 a C4599

Os artigos nesta seção descrevem mensagens de aviso do compilador Microsoft C/C++ C4400 a C4599.

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 fazer com que muitos erros subsequentes desapareçam.

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ê chegou a esta página ao usar F1 e acha que a mensagem de erro ou aviso precisa de explicações adicionais, informe-nos. Você pode usar os botões de comentários nesta página para registrar um problema de documentação no GitHub. 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 Problema ou envie uma sugestão usando Ajuda > Enviar Comentários > Enviar uma Sugestão. 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 nos fóruns Perguntas e respostas do Microsoft Learn. 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 aviso

Aviso Mensagem
Aviso do compilador (nível 1) C4600 #pragma 'macro name': uma cadeia de caracteres não vazia válida era esperada
Aviso do compilador (nível 4) C4400 'type': qualificadores const/volatile neste tipo não são compatíveis
Aviso do compilador (nível 1) C4401 'bitfield': o membro é um campo de bits
Aviso do compilador (nível 1) C4402 deve usar o operador PTR
Aviso do compilador (nível 1) C4403 operador PTR inválido
Aviso do compilador (nível 3) C4404 ponto em diretiva ignorado
Aviso do compilador (nível 1) C4405 'identifier': o identificador é uma palavra reservada
Aviso do compilador (nível 1) C4406 operando na diretiva ignorado
Aviso do compilador (nível 1) C4407 conversão entre diferentes representações de ponteiro para membro, o compilador pode gerar um código incorreto
Aviso do compilador (nível 4) C4408 'struct|union' anônimo não declarou nenhum membro de dados
Aviso do compilador (nível 1) C4409 tamanho de instrução ilegal
Aviso do compilador (nível 1) C4410 tamanho inválido para operando
Aviso do compilador (nível 1) C4411 'identifier': o símbolo resolve para um registro de deslocamento
Aviso do compilador (nível 2) C4412 'function': a assinatura de função contém o tipo 'type'; não é seguro passar objetos C++ entre código puro e combinado ou nativo.
Aviso do compilador C4413 'classname::member': o membro de referência é inicializado para um temporário que não persiste após a saída do construtor
Aviso do compilador (nível 3) C4414 'function': salto short para função convertido para near
Aviso do compilador (nível 1) C4415 __declspec(code_seg('name')) duplicado
Aviso do compilador (nível 1) C4416 __declspec(code_seg(...)) contém a sequência de caracteres vazia: ignorado
Aviso do compilador (nível 1) C4417 uma instanciação de modelo explícita não pode ter __declspec(code_seg(...)): ignorado
Aviso do compilador (nível 1) C4418 __declspec(code_seg(...)) ignorado em uma enumeração
Aviso do compilador (nível 3) C4419 'symbol' não tem nenhum efeito quando aplicado à ref class privada 'class'.
Aviso do compilador (nível 1) C4420 'checked_operator': operador não disponível, usando 'operator' em vez disso; a verificação de tempo de execução pode estar comprometida
Aviso do compilador (nível 3) C4421 'parameter': um parâmetro de referência em uma função retomável é potencialmente arriscado
Aviso do compilador (nível 3) C4423 'std::bad_alloc': será capturado pela classe ('type') na linha number
Aviso do compilador (nível 3) C4424 catch para 'type1' antecedido de 'type2' na linha number; poderá ocorrer comportamento imprevisível se 'std::bad_alloc' for gerada
Aviso do compilador (nível 1) C4425 Uma anotação SAL não pode ser aplicada a '...'
Aviso do compilador (nível 1) C4426 os sinalizadores de otimização foram alterados após incluir o cabeçalho, pode ser devido ao #pragma optimize()
Aviso do compilador (nível 1) C4427 'operator': estouro na divisão constante, comportamento indefinido
Aviso do compilador (nível 4) C4429 nome de caractere universal possivelmente incompleto ou formado de modo inadequado
Aviso do compilador (erro) C4430 faltando especificador de tipo - int assumido. Nota: C++ não é compatível com default-int
Aviso do compilador (nível 4) C4431 faltando especificador de tipo - int assumido. Observação: C não suporta mais default-int
Aviso do compilador (nível 4) C4434 um construtor static precisa ter acessibilidade private; alterando para acesso private
Aviso do compilador (nível 4) C4435 'derived_class': o layout do objeto em /vd2 será alterado devido à base virtual 'base_class'
Aviso do compilador (nível 1) C4436 dynamic_cast da base virtual 'base_class' para 'derived_class' no construtor ou destruidor poderia falhar com o objeto parcialmente construído
Aviso do compilador (nível 4) C4437 dynamic_cast da base virtual 'base_class' para 'derived_class' pode falhar em alguns contextos
Aviso do compilador C4438 'function': não pode ser chamado com segurança no modo /await:clrcompat. Se 'function' chamar o CLR, isso poderá resultar em corrupção de cabeçalho do CLR
Aviso do compilador (erro) C4439 'function': a definição de função com um tipo gerenciado na assinatura precisa ter uma convenção de chamada __clrcall
Aviso do compilador (nível 1) C4440 a redefinição da convenção de chamada de 'calling_convention1' para 'calling_convenction2' foi ignorada
Aviso do compilador (nível 1) C4441 a convenção de chamada de 'calling_convention1' foi ignorada; 'calling_convention2' é usada em vez disso
Aviso do compilador (nível 1) C4442 terminador nulo inserido no argumento __annotation. O valor será truncado.
Aviso do compilador (nível 1) C4443 parâmetro pragma esperado como '0', '1' ou '2'
Aviso do compilador (nível 3) C4444 'identifier': '__unaligned' de nível superior não é implementado nesse contexto
Aviso do compilador (nível 1) C4445 'function': em um tipo 'WinRT|managed', um método virtual não pode ser privado
Aviso do compilador (nível 1) C4446 'type': não é possível mapear o membro 'name1' para esse tipo, devido ao conflito com o nome do tipo. O método foi renomeado como 'name2'
Aviso do compilador (nível 1) C4447 Assinatura 'main' encontrada sem o modelo de threading. Considere usar 'int main(Platform::Array<Platform::String^>^ args)'.
Aviso do compilador C4448 'type1' não tem uma interface padrão especificada em metadados. Escolha: 'type2', que pode falhar no runtime.
Aviso do compilador C4449 'type' um tipo não selado deve ser marcado como '[WebHostHidden]'
Aviso do compilador C4450 'type1' deve ser marcado como '[WebHostHidden]' porque deriva de 'type2'
Aviso do compilador (nível 4) C4451 'classname1::member': o uso da ref class 'classname2::member' dentro desse contexto pode levar a marshaling inválido de objeto entre contextos
Aviso do compilador (nível 1) C4452 'identifier': o tipo público não pode estar no escopo global. Ele precisa estar em um namespace que seja um filho do nome do arquivo .winmd de saída.
Aviso do compilador (nível 1) C4453 'type': um tipo '[WebHostHidden]' não deve ser usado na superfície publicada de um tipo público que não seja '[WebHostHidden]'
Aviso do compilador (nível 1) C4454 'function' está sobrecarregado por mais do que o número de parâmetros de entrada sem ter [DefaultOverload] especificado. Escolher 'declaration' como a sobrecarga padrão
Aviso do compilador (nível 1) C4455 'operator operator': identificadores de sufixos literais que não começam com sublinhado são reservados
Aviso do compilador (nível 4) C4456 a declaração de 'identifier' oculta uma declaração local anterior
Aviso do compilador (nível 4) C4457 a declaração de 'identifier' oculta um parâmetro de função
Aviso do compilador (nível 4) C4458 a declaração de 'identifier' oculta um membro da classe
Aviso do compilador (nível 4) C4459 a declaração de 'identifier' oculta uma declaração global
Aviso do compilador (nível 4) C4460 O operador 'WinRT|managed' 'operator' tem parâmetro passado por referência. O operador 'WinRT|managed' 'operator' tem semântica diferente do operador C++ 'cpp_operator', você pretendia passar por valor?
Aviso do compilador (nível 1) C4461 'classname': esta classe tem um finalizador '! finalizer', mas nenhum destruidor '~dtor'
Aviso do compilador (nível 1, erro) C4462 'type': não é possível determinar o GUID do tipo. O programa poderá falhar no runtime.
Aviso do compilador (nível 4) C4463 estouro; atribuir 'value' ao campo de bits que só pode conter valores de 'min_value' a 'max_value'
Aviso do compilador (nível 4) C4464 o caminho de inclusão relativo contém '..'
Aviso do compilador C4466 Não foi possível executar elisão do heap de corrotina
Aviso do compilador (nível 1) C4467 O uso de atributos do ATL foi preterido
Aviso do compilador (nível 1) C4468 O atributo [[fallthrough]] deve ser seguido por um rótulo case ou um rótulo default
Aviso do compilador (nível 1) C4470 pragmas de controle de ponto flutuante ignorados sob /clr
Aviso do compilador (nível 4) C4471 'enumeration': uma declaração de encaminhamento de uma enumeração sem escopo deve ter um tipo subjacente (int assumido)
Aviso do compilador (nível 1) C4472 'identifier' é uma enumeração nativa: adicione um especificador de acesso (privado/público) para declarar uma enumeração 'WinRT|managed'
Aviso do compilador (nível 1) C4473 'function': não há argumentos suficientes transmitidos para a cadeia de caracteres de formato
Aviso do compilador (nível 3) C4474 'function': excesso de argumentos passados para a cadeia de caracteres de formato
Aviso do compilador (nível 3) C4475 'function': o modificador de comprimento 'modifier' não pode ser usado com o caractere de campo de tipo 'character' no especificador de formato
Aviso do compilador (nível 3) C4476 'function': caractere de campo de tipo 'character' desconhecido no especificador de formato
Aviso do compilador (nível 1) C4477 'function': a cadeia de caracteres de formato 'string' exige um argumento do tipo 'type', mas o argumento variádico number tem o tipo 'type'
Aviso do compilador (nível 1) C4478 'function': os espaços reservados posicionais e não posicionais não podem ser misturados na mesma cadeia de formato
Aviso do compilador (erro) C4480 extensão não padrão usada: especificação de tipo subjacente para enumeração 'enumeration'
Aviso do compilador (nível 4) C4481 extensão não padrão usada: especificador de substituição 'keyword'
Aviso do compilador C4482 extensão não padrão usada: enumeração 'enumeration' usada no nome qualificado
Aviso do compilador (nível 1, erro) C4483 erro de sintaxe: esperada palavra-chave de C++
Aviso do compilador (erro) C4484 'override_function': corresponde ao método de ref class base 'base_class_function', mas não está marcado como 'virtual', 'new' ou 'override'; 'new' (e não 'virtual') é assumido
Aviso do compilador (erro) C4485 'override_function': corresponde ao método de ref class base 'base_class_function', mas não está marcado como 'virtual', 'new' ou 'override'; 'new' (e não 'virtual') é presumido
Aviso do compilador (nível 1) C4486 'function': um método virtual privado de uma ref class ou classe de valor deve ser marcado como 'sealed'
Aviso do compilador (nível 4) C4487 'derived_class_function': corresponde ao método não virtual herdado 'base_class_function', mas não está explicitamente marcado como 'new'
Aviso do compilador (nível 1) C4488 'function': exige a palavra-chave 'keyword' para implementar o método de interface 'interface_method'
Aviso do compilador (nível 1) C4489 'specifier': não permitido no método de interface 'method'; especificadores de substituição só são permitidos em métodos de ref class e de classe de valor
Aviso do compilador (nível 1) C4490 'override': uso incorreto do especificador de substituição; 'function' não corresponde a um método de ref class base
Aviso do compilador (nível 1) C4491 'name': tem um formato de versão de IDL inválido
Aviso do compilador (nível 1, erro) C4492 'function1': corresponde ao método de ref class base 'function2', mas não está marcado como 'override'
Aviso do compilador (nível 3, erro) C4493 a expressão delete não tem efeito, pois o destruidor de 'type' não tem acessibilidade 'public'
Aviso do compilador (nível 1) C4494 'function': ignorando __declspec(allocator) porque o tipo de retorno de função não é um ponteiro nem uma referência
Aviso do compilador C4495 extensão não padrão '__super' utilizada: substituir por nome de classe base explícito
Aviso do compilador C4496 extensão não padrão 'for each' utilizada: substituir por instrução ranged-for
Aviso do compilador C4497 extensão não padrão 'sealed' usada: substituir por 'final'
Aviso do compilador C4498 extensão não padrão usada: 'extension'
Aviso do compilador (nível 4) C4499 'function': uma especialização explícita não pode ter uma classe de armazenamento (ignorada)
Aviso do compilador (nível 1) C4502 'linkage specification' requer uso da palavra-chave 'extern' e deve preceder todos os outros especificadores
Aviso do compilador (nível 1) C4503 'identifier': comprimento de nome decorado excedido, o nome foi truncado
Aviso do compilador (nível 4) C4505 'function': a função local não referenciada foi removida
Aviso do compilador (nível 1) C4506 nenhuma definição para a função embutida 'function'
Aviso do compilador (nível 1) C4508 'function': a função deve retornar um valor; é presumido o tipo de retorno 'void'
Aviso do compilador C4509 Extensão não padrão usada: 'function' usa SEH e 'object' tem um destruidor
Aviso do compilador (nível 4) C4510 'class': o construtor padrão foi definido implicitamente como excluído
Aviso do compilador (nível 3) C4511 'class': o construtor de cópia foi implicitamente definido como excluído
Aviso do compilador (nível 4) C4512 'class': o operador de atribuição foi definido implicitamente como excluído
Aviso do compilador (nível 4) C4513 'class': o destruidor foi definido implicitamente como excluído
Aviso do compilador (nível 4) C4514 'function': a função embutida desreferenciada foi removida
Aviso do compilador (nível 4) C4515 'namespace': o namespace usa ele próprio
Aviso do compilador (nível 4) C4516 'class::symbol': as declarações access foram preteridas; as declarações using do membro fornecem uma alternativa melhor
Aviso do compilador (nível 4) C4517 declarações de acesso foram preteridas; declarações using do membro são uma alternativa melhor
Aviso do compilador (nível 1) C4518 'specifier': especificadores de classe de armazenamento ou de tipo inesperados aqui; ignorado
Aviso do compilador (erro) C4519 argumentos de modelo padrão são permitidos apenas em um modelo de classe
Aviso do compilador (nível 3) C4521 'class': vários construtores de cópia especificados
Aviso do compilador (nível 3) C4522 'class': vários operadores de atribuição especificados
Aviso do compilador (nível 3) C4523 'class': vários destruidores especificados
Aviso do compilador (nível 1) C4526 'function': a função membro static não pode substituir a função virtual 'virtual function'. A substituição será ignorada e a função virtual será ocultada
Aviso do compilador (nível 1) C4530 Manipulador de exceção C++ usado, mas a semântica de desenrolamento não está habilitada. Especificar /EHsc
Aviso do compilador (nível 1) C4531 Tratamento de exceção do C++ não disponível no Windows CE. Usar tratamento de exceções estruturado
Aviso do compilador (nível 1) C4532 'continue': a saída do bloco '__finally/finally' tem um comportamento indefinido durante a manipulação do encerramento
Aviso do compilador (nível 1) C4533 a inicialização de 'variable' é ignorada por 'goto label'
Aviso do compilador (nível 3) C4534 'constructor' não será um construtor padrão para 'class/struct' 'identifier' devido ao argumento padrão
Aviso do compilador (nível 3) C4535 calling _set_se_translator() requer /EHa
Aviso do compilador (nível 4) C4536 'typename': nome do tipo excede o limite de metadados de caracteres 'character_limit'
Aviso do compilador (nível 1) C4537 'object': '.' aplicado a tipo não definido pelo usuário
Aviso do compilador (nível 3) C4538 'type': qualificadores const/volatile neste tipo não são compatíveis
Aviso do compilador (nível 1) C4540 dynamic_cast usado para converter para base inacessível ou ambígua; o teste de tempo de execução falhará ('type1' para 'type2')
Aviso do compilador (nível 1) C4541 'identifier' usado em tipo polimórfico 'type' com /GR-; isso pode resultar em um comportamento imprevisível
Aviso do compilador (nível 1) C4542 Ignorando geração de arquivo de texto injetado mesclado, não é possível gravar arquivo filetype: 'issue': message
Aviso do compilador (nível 3) C4543 Texto injetado suprimido pelo atributo 'no_injected_text'
Aviso do compilador (nível 1) C4544 'declaration': argumento de modelo padrão ignorado nessa declaração de modelo
Aviso do compilador (nível 1) C4545 expressão antes da vírgula é avaliada para uma função que está ausente em uma lista de argumentos
Aviso do compilador (nível 1) C4546 faltando lista de argumentos na chamada de função antes da vírgula
Aviso do compilador (nível 1) C4547 'operator': o operador antes da vírgula não tem efeito; um operador com efeito colateral era esperado
Aviso do compilador (nível 1) C4548 expressão antes da vírgula não tem efeito; expressão esperada com efeito colateral
Aviso do compilador (nível 1) C4549 'operator': o operador antes da vírgula não tem efeito; você quis dizer 'operator'?
Aviso do compilador (nível 1) C4550 expressão é avaliada como uma função cuja lista de argumentos está ausente
Aviso do compilador (nível 1) C4551 lista de argumentos ausente na chamada de função
Aviso do compilador (nível 1) C4552 'operator': operador antes da vírgula não tem efeito; operador esperado com efeito colateral
Aviso do compilador (nível 1) C4553 'operator': o operador não tem efeito; você quis dizer 'operator'?
Aviso do compilador (nível 3) C4554 C4554 'operator': verifique a precedência de operador para possível erro; use parênteses para esclarecer a precedência
Aviso do compilador (nível 1) C4555 expressão não tem efeito; expressão esperada com efeito colateral
Aviso do compilador (nível 1) C4556 o valor do argumento imediato 'value' do intrínseco está fora do intervalo 'lower_bound - upper_bound'
Aviso do compilador (nível 3) C4557 '__assume' contém o efeito 'effect'
Aviso do compilador (nível 1) C4558 o valor do operando 'value' está fora do intervalo 'lower_bound - upper_bound'
Aviso do compilador (nível 4) C4559 'function': redefinição; a função ganha __declspec(modifier)
Aviso do compilador (nível 1) C4561 '__fastcall' incompatível com a opção '/clr': convertendo para '__stdcall'
Aviso do compilador (nível 4) C4562 funções totalmente prototipadas são exigidas com a opção '/clr': convertendo '()' para '(void)'
Aviso do compilador (nível 4) C4564 método 'method' de 'class' 'classname' define um parâmetro padrão incompatível 'parameter'
Aviso do compilador (nível 4) C4565 'function': redefinição; o símbolo foi declarado anteriormente com __declspec(modifier)
Aviso do compilador (nível 1) C4566 o caractere representado pelo nome de caractere universal 'char' não pode ser representado na página de código atual (number)
Aviso do compilador (nível 1) C4568 'function': nenhum membro corresponde à assinatura da substituição explícita
Aviso do compilador (nível 3) C4569 'function': nenhum membro corresponde à assinatura da substituição explícita
Aviso do compilador (nível 3) C4570 'type': não é explicitamente declarado como abstrato, mas tem funções abstratas
Aviso do compilador (nível 4) C4571 Informativo: a semântica catch(...) foi alterada desde o Visual C++ 7.1; exceções estruturadas (SEH) não são mais capturadas
Aviso do compilador (nível 1) C4572 O atributo [ParamArray] foi preterido sob /clr, use '...' em vez disso
Aviso do compilador (nível 1) C4573 o uso de 'lambda function' exige que o compilador capture 'this', mas o modo de captura padrão atual não permite
Aviso do compilador (nível 4) C4574 'identifier' é definido para ser '0': você quis usar '#if identifier'?
Aviso do compilador (nível 1) C4575 '__vectorcall' incompatível com a opção '/clr': convertendo em '__stdcall'
Aviso do compilador (nível 1, erro) C4576 um tipo entre parênteses seguido por uma lista do inicializador é uma sintaxe de conversão do tipo explícito não padrão
Aviso do compilador (nível 1, desativado) C4577 'noexcept' usado sem o modo de manipulação de exceção especificado; a terminação na exceção não é garantida. Especificar /EHsc
Aviso do compilador (nível 1, erro) C4578 'abs': conversão de 'type1' para 'type2', possível perda de dados (você quis chamar 'function' ou #include <cmath>?)
Aviso do compilador (nível 3) C4580 [atributo] foi preterido; em vez disso, especifique System::Attribute ou Platform::Metadata como uma classe base
Aviso do compilador (nível 1) C4581 comportamento preterido: 'string1' substituído por 'string2' para atributo do processo
Aviso do compilador (nível 4) C4582 'type': o construtor não foi chamado implicitamente
Aviso do compilador (nível 4) C4583 'type': o destruidor não foi chamado implicitamente
Aviso do compilador (nível 1) C4584 'class1': a classe base 'class2' já é uma classe base de 'class3'
Aviso do compilador (nível 1, erro) C4585 'class': uma 'public ref class' WinRT precisa ser selada ou derivar de uma classe não selada existente
Aviso do compilador (nível 1, erro) C4586 type': um tipo público não pode ser declarado em um namespace de nível superior denominado 'Windows'
Aviso do compilador (nível 1) C4587 'anonymous_structure': alteração de comportamento: o construtor não é mais chamado implicitamente
Aviso do compilador (nível 1) C4588 'anonymous_structure': alteração de comportamento: o destruidor não é mais chamado implicitamente
Aviso do compilador (nível 4) C4589 O construtor da classe abstrata 'class1' ignora o inicializador para uma classe base 'class2'
Aviso do compilador (nível 1) C4591 Limite de profundidade de chamada de number de 'constexpr' excedido (/constexpr:depth<NUMBER>)
Aviso do compilador (nível 3) C4592 'function': falha na avaliação da chamada 'constexpr'; a função será chamada em tempo de execução
Aviso do compilador (nível 1) C4593 'function': limite de 'limit' etapas de avaliação de chamada 'constexpr' excedido; use /constexpr:steps<NUMBER> para aumentar o limite
Aviso do compilador (nível 3) C4594 'type': o destruidor não será chamado implicitamente se uma exceção for gerada
Aviso do compilador (nível 1) C4595 'type': alteração de comportamento: o destruidor não será mais chamado implicitamente se uma exceção for gerada
Aviso do compilador (nível 4) C4596 'identifier': nome qualificado inválido na declaração de membro
Aviso do compilador (erro) C4597 comportamento indefinido: offsetof aplicado a um membro de uma base virtual
Aviso do compilador (níveis 1 e 3) C4598 '#include "header"': o número do cabeçalho number no cabeçalho pré-compilado não corresponde à compilação atual nessa posição
Aviso do compilador (nível 3) C4599 'flag path': o argumento de linha de comando número number não corresponde ao cabeçalho pré-compilado

Confira também

Compilador C/C++ e erros e avisos de ferramentas de compilação
Avisos do Compilador C4000 - C5999