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