Partilhar via


Avisos do compilador C/C++ da Microsoft C4000 a C4199

Os artigos desta seção descrevem as mensagens de aviso do compilador C/C++ da Microsoft C4000 a C4199.

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 4, não é mais emitido) C4001 uma extensão não padrão 'comentário de linha única' foi usada
Aviso do Compilador (nível 1, Erro) C4002 Muitos argumentos para a invocação de macro semelhante a função 'identificador'.
Aviso do Compilador (nível 1, Erro) C4003 Não há argumentos suficientes para a invocação de macro do tipo função 'identificador'
Aviso do compilador (nível 1) C4005 "identifier": redefinição da macro
Aviso do compilador (nível 1) C4006 #undef esperava um identificador
Aviso do compilador (nível 3) C4007 'função': deve ser 'atributo'
Aviso do compilador (nível 3) C4008 "function": atributo "attribute" ignorado
Aviso do compilador (nível 1) C4010 o comentário de linha única contém um caractere de continuação de linha
Aviso do compilador (nível 3) C4013 "function" indefinida; supondo que um extern retorne int
Aviso do compilador (nível 1) C4015 "identifier": o tipo de campo de bit deve ser um número inteiro
Aviso do compilador (nível 3) C4018 'expression': incompatibilidade entre com sinal/sem sinal
Aviso do compilador (nível 4) C4019 instrução vazia em escopo global
Aviso do compilador (nível 1) C4020 'function': excesso de parâmetros reais
Aviso do compilador (nível 1) C4022 "function": incompatibilidade de ponteiro para o parâmetro real "parameter_number"
Aviso do compilador (nível 1) C4023 "function": ponteiro baseado repassado para uma função não prototipada: parâmetro "parameter_number"
Aviso do compilador (nível 1) C4024 "function": tipos diferentes para o parâmetro formal e real "parameter_number"
Aviso do compilador (nível 1) C4025 "function": ponteiro baseado repassado para a função com argumentos variáveis: parâmetro "parameter_number"
Aviso do compilador (nível 1) C4026 função declarada com lista de parâmetros formais
Aviso do compilador (nível 1) C4027 função declarada sem lista de parâmetros formais
Aviso do compilador (nível 1) C4028 parâmetro formal "parameter_number" diferente da declaração
Aviso do compilador (nível 1) C4029 lista de parâmetros formais declarada diferente da definição
Aviso do compilador (nível 1) C4030 primeira lista de parâmetros formais maior do que a segunda lista
Aviso do compilador (nível 1) C4031 segunda lista de parâmetros formais maior do que a primeira lista
Aviso do compilador (nível 4) C4032 o parâmetro formal "parameter_number" tem um tipo diferente quando promovido
Aviso do compilador (nível 1) C4033 "function": precisa retornar um valor
Aviso do compilador (nível 1) C4034 sizeof retorna 0
Aviso do compilador (nível 3) C4035 "function": sem valor retornado
Aviso do compilador (nível 1) C4036 'type' sem nome como parâmetro real
Aviso do compilador (nível 1) C4038 "modifier": modificador de classe ilegal
Aviso do compilador (nível 1) C4041 limite do compilador: encerrando a saída do navegador
Aviso do compilador (nível 1) C4042 "identifier": tem uma classe de armazenamento inválida
Aviso do compilador (nível 1) C4045 "array": estouro de limites da matriz
Aviso do compilador (nível 1) C4047 'operator': 'identifier1' difere de 'identifier2' nos níveis de indireção
Aviso do compilador (nível 1) C4048 diferentes subscritos de matriz: "identifier1" e "identifier2"
Aviso do compilador (nível 1) C4049 limite do compilador: encerrando a emissão de números de linha
Aviso do compilador (nível 1) C4051 conversão de tipo; possível perda de dados
Aviso do Compilador (nível 1 e nível 4) C4052 declarações de função diferentes; uma contém argumentos variáveis
Aviso do compilador (nível 4) C4053 um operando nulo para "?:"
Aviso do compilador (nível 1) C4055 'conversão': do ponteiro de dados 'type1' ao ponteiro de função 'type2'
Aviso do compilador (nível 2) C4056 estouro em aritmética de constante de ponto flutuante
Aviso do compilador (nível 4) C4057 "operator": "identifier1" difere quanto à indireção para tipos de base ligeiramente diferentes de "identifier2"
Aviso do Compilador (nível 3, desativado) C4060 a instrução switch não contém nenhum rótulo 'case' nem 'default'
Aviso do Compilador (nível 4, desativado) C4061 o enumerador "identifier" em um switch de enum "enumeration" não é tratado explicitamente por um rótulo de case
Aviso do Compilador (nível 4, desativado) C4062 O enumerador 'identificador' na chave de enum 'enumeração' não é tratado
Aviso do compilador (nível 4) C4063 o "identifier" do caso não é um valor válido para o switch de enum "enumeration"
Aviso do compilador (nível 4) C4064 switch de enum "enumeration" incompleto
Aviso do Compilador (nível 3, desativado) C4065 a instrução do switch contém "default" mas nenhum rótulo "case"
Aviso do compilador (nível 3) C4066 os caracteres depois do primeiro em constante de caracteres largos são ignorados
Aviso do compilador (nível 1) C4067 tokens inesperados após diretiva de pré-processador – uma nova linha era esperada
Aviso do compilador (nível 1) C4068 pragma desconhecido "identifier"
Aviso do compilador C4069 o double long tem a mesma precisão que double
Aviso do compilador (nível 3) C4073 inicializadores colocados na área de inicialização da biblioteca
Aviso do compilador (nível 1) C4074 inicializadores colocados em área de inicialização reservada do compilador
Aviso do compilador (nível 1) C4075 inicializadores colocados em área de inicialização não reconhecida
Aviso do compilador (nível 1) C4076 "type_modifier": não pode ser usado com o tipo "typename"
Aviso do compilador (nível 1) C4077 opção check_stack desconhecida
Aviso do compilador (nível 1) C4079 token "token" inesperado
Aviso do compilador (nível 1) C4080 identificador esperado para o nome do segmento; o encontrado foi "symbol"
Aviso do compilador (nível 1) C4081 "token1" esperado; "token2" encontrado
Aviso do compilador (nível 1) C4083 O esperado era "token"; o identificador encontrado foi "identifier"
Aviso do compilador (nível 1) C4085 o parâmetro de pragma esperado deveria ser "on" ou "off"
Aviso do compilador (nível 1) C4086 esperado parâmetro de pragma como '1', '2', '4', '8', ou '16'
Aviso do compilador (nível 1) C4087 "function": declarada com uma lista de parâmetros "void"
Aviso do compilador (nível 1) C4088 "function": incompatibilidade de ponteiro no parâmetro real "parameter_number", parâmetro formal "parameter_number"
Aviso do compilador (nível 1) C4089 "function": tipos diferentes no parâmetro real "parameter_number", parâmetro formal "parameter_number"
Aviso do compilador (nível 1) C4090 "operation": qualificadores "modifier" diferentes
Aviso do Compilador (nível 1 e nível 2) C4091 "keyword": ignorado à esquerda de "tipo" quando nenhuma variável foi declarada
Aviso do compilador (nível 4) C4092 sizeof retorna 'unsigned long'
Aviso do compilador (nível 2) C4094 "token" sem tag declarado, nenhum símbolo
Aviso do compilador (nível 1) C4096 "identifier": a interface não é uma interface COM; não será emitido para IDL
Aviso do compilador (nível 1) C4097 o parâmetro de pragma esperado deveria ser "restore" ou "off"
Aviso do compilador (nível 1) C4098 "function": função "void" retornando um valor
Aviso do compilador (nível 2) C4099 "identifier": nome do tipo visto pela primeira vez usando "object_type1" agora foi visto usando "object_type2"
Aviso do compilador (nível 4) C4100 "identifier": parâmetro formal não mencionado
Aviso do Compilador (nível 3 e nível 4) C4101 'identificador': variável local não referenciada
Aviso do compilador (nível 3) C4102 "label": rótulo não mencionado
Aviso do compilador (nível 1) C4103 o alinhamento mudou após a inclusão do cabeçalho, talvez devido ao #pragma pack(pop) ausente
Aviso do compilador (nível 1) C4109 identificador "identifier" inesperado
Aviso do Compilador (nível 1 e nível 4) C4112 #line requer um número inteiro entre 1 e 'line_count'
Aviso do compilador (nível 1) C4113 "identifier1" difere de "identifier2" quanto às listas de parâmetros
Aviso do compilador (nível 1) C4114 o mesmo qualificador de tipo foi usado mais de uma vez
Aviso do compilador (níveis 1 e 4) C4115 "type": definição de tipo nomeado entre parênteses
Aviso do compilador (nível 1) C4116 definição de tipo sem nome entre parênteses
Aviso do compilador (nível 1) C4117 O nome da macro "name" está reservado, "command" será ignorado
Aviso do compilador (nível 1) C4119 bases diferentes "base1" e "base2" especificadas
Aviso do compilador (nível 1) C4120 incompatibilidade de based/unbased
Aviso do compilador (nível 4) C4121 "symbol": o alinhamento de um membro foi sensível ao empacotamento
Aviso do compilador (nível 1) C4122 "function" : alloc_text aplicável somente a funções com vinculação C
Aviso do compilador (nível 1) C4123 expressões base diferentes especificadas
Aviso do compilador (nível 1) C4124 __fastcall com verificação de pilha é ineficiente
Aviso do compilador (nível 4) C4125 um dígito decimal encerra a sequência de escape octal
Aviso do compilador (nível 4) C4127 a expressão condicional é constante
Aviso do compilador (nível 1) C4129 "character": sequência de escape de caractere não reconhecida
Aviso do compilador (nível 4) C4130 "operator": operação lógica no endereço da constante da cadeia de caracteres
Aviso do compilador (nível 4) C4131 "function": usa um declarador de estilo antigo
Aviso do compilador (nível 4) C4132 "object": o objeto const deve ser inicializado
Aviso do Compilador (nível 1 e nível 3) C4133 "expression": tipos incompatíveis — de "type1" para "type2"
Aviso do compilador C4137 'function': nenhum valor retornado da função de ponto flutuante
Aviso do compilador (nível 1) C4138 "*/" encontrado fora de um comentário
Aviso do Compilador (nível 1, Erro) C4141 "modifier": usado mais de uma vez
Aviso do compilador (nível 1) C4142 "identifier": redefinição de tipo benigna
Aviso do compilador (nível 1) C4143 pragma"same_seg" não tem suporte; usar a alocação __based
Aviso do compilador (nível 1) C4144 "expression" : expressão relacional como uma expressão de switch
Aviso do compilador (nível 1) C4145 "expression1" : expressão relacional como expressão de comutador; possível confusão com "expression2"
Aviso do compilador (nível 2) C4146 um operador de subtração unária foi aplicado a tipo sem sinal, resultado permanece sem sinal
Aviso do compilador (nível 2) C4150 exclusão do ponteiro para o tipo incompleto "type"; nenhum destruidor chamado
Aviso do compilador (nível 4) C4152 extensão não padrão, conversão de função/ponteiro de dados em expressão
Aviso do compilador (nível 1) C4153 conversão de ponteiro de função/dados na expressão
Aviso do compilador (nível 1) C4154 exclusão de uma expressão de matriz; conversão para ponteiro fornecida
Aviso do compilador (nível 1) C4155 exclusão de uma expressão de matriz sem o uso da forma matricial de 'delete'
Aviso do compilador (nível 2) C4156 exclusão de uma expressão de matriz sem o uso do formulário matriz de 'delete'; formulário matriz substituído
Aviso do compilador (nível 1) C4157 pragma foi ignorado pelo compilador de C
Aviso do compilador (nível 1) C4158 supondo que #pragma pointers_to_members(full_generality, "inheritance_type")
Aviso do compilador (nível 3) C4159 #pragma "pragma"(pop,...): desempilhou o identificador "identifier" enviado por push anteriormente
Aviso do compilador (nível 1) C4160 #pragma "pragma"(pop,...): não encontrou o identificador "identifier" enviado por push anteriormente
Aviso do compilador (nível 3) C4161 #pragma "pragma"(pop...): mais desempilhamentos do que envios por push
Aviso do compilador (nível 1) C4162 "identifier": nenhuma função com vinculação C encontrada
Aviso do compilador (nível 1) C4163 "identifier": não disponível como uma função intrínseca
Aviso do compilador (nível 1) C4164 'function': função intrínseca não declarada
Aviso do compilador (nível 3, desativado) C4165 "HRESULT" está sendo convertido para "bool"; tem certeza de que quer fazer isso?
Aviso do compilador (nível 1) C4166 convenção de chamada inválida para construtor/destruidor
Aviso do compilador (nível 1) C4167 "function": disponível apenas como uma função intrínseca
Aviso do compilador (nível 1) C4168 limite do compilador: fora dos tipos de depuração, exclua o banco de dados do programa "database" e recompile
Aviso do compilador (nível 1) C4172 endereço de retorno de variável local ou optional_context temporário
Aviso do compilador (nível 1) C4174 "name": não disponível como um #pragma component
Aviso do compilador (nível 1) C4175 #pragma component(browser, on): as informações do navegador devem ser especificadas inicialmente na linha de comando
Aviso do compilador (nível 1) C4176 "subcomponent": subcomponente desconhecido para navegador do #pragma component
Aviso do compilador (nível 1) C4177 #pragma "pragma" só deve ser usado no escopo global ou no escopo do namespace
Aviso do compilador (nível 1) C4178 constante do case "constant" grande demais para o tipo de expressão do switch
Aviso do Compilador (nível 4, não é mais emitido) C4179 "//*": analisado como "/" e "/\*": confusão com comentários "//" padrão
Aviso do compilador (nível 1) C4180 qualificador aplicado a um tipo de função não tem significado; ignorado
Aviso do compilador C4181 qualificador aplicado a tipo de referência; ignorado
Aviso do compilador (nível 1) C4182 o nível de aninhamento de #include tem uma profundidade "nest_count"; possível recursão infinita
Aviso do compilador (nível 1) C4183 "identifier": tipo de retorno ausente; presumido como uma função membro retornando "int"
Aviso do compilador (nível 1) C4185 ignorando o atributo #import desconhecido "attribute"
Aviso do compilador (nível 1) C4186 o atributo de #import "attribute" requer "argument_count" argumentos; ignorado
Aviso do compilador (nível 1) C4187 os atributos de #import "attribute1" e "attribute2" são incompatíveis; ambos ignorados
Aviso do compilador (nível 1) C4188 a expressão constante não é integral
Aviso do Compilador (nível 3 e nível 4) C4189 "identifier": a variável local foi inicializada, mas não mencionada
Aviso do compilador (nível 1) C4190 "identifier1" tem uma vinculação C especificada, mas retorna um UDT "identifier2" que é incompatível com C
Aviso do Compilador (nível 3, desativado) C4191 'operação': conversão insegura de 'tipo_de_expressão' para 'tipo_necessário'
Fazer uma chamada de função usando o ponteiro resultante pode fazer com que seu programa falhe
Aviso do compilador (nível 3) C4192 excluindo automaticamente o "identifier" ao importar a biblioteca de tipos "library"
Aviso do compilador (nível 3) C4193 #pragma warning(pop): sem "#pragma warning(push)" correspondente
Aviso do compilador (nível 1) C4194 #pragma start_map_region não pode ser aninhado; Ignorado
Aviso do compilador (nível 1) C4195 #pragma stop_map_region usado sem #pragma start_map_region correspondente; ignorado
Aviso do compilador (nível 1) C4196 esperado "token1" ou "token2"; encontrado "token3"
Aviso do compilador (nível 3) C4197 "type": o nível superior volatile na conversão é ignorado
Aviso do compilador (nível 1, nível 2, nível 3 e nível 4) C4199 message

Confira também

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