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 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 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 aviso
| Aviso | Mensagem |
|---|---|
| Aviso do compilador (nível 4, não emitido mais) 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': parâmetro formal parameter_number e parâmetro real têm tipos diferentes |
| 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íveis 1 e 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 número_do_parâmetro, parâmetro formal número_do_parâmetro |
| 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íveis 1 e 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 não referenciado |
| Aviso do compilador (níveis 3 e 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íveis 1 e 4) C4112 | #line requer um 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íveis 1 e 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 #pragma pointers_to_members(full_generality, tipo_de_herança) |
| 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 'identificador' enviado 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 da variável local ou temporário: optional_context |
| 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 emitido mais) 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 'attribute' de #import desconhecido |
| Aviso do compilador (nível 1) C4186 | #o atributo 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íveis 3 e 4) C4189 | "identifier": a variável local foi inicializada, mas não mencionada |
| Aviso do compilador (nível 1) C4190 | 'identifier1' tem c-linkage especificado, mas retorna '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 correspondência "#pragma warning(push)" |
| 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 | Mensagem |
Veja também
Compilador C/C++ e erros e avisos das ferramentas de build
Avisos do compilador C4000 a C5999