Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os artigos nesta seção descrevem mensagens de aviso do compilador Microsoft C/C++ C4000 a C4199.
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 aviso
| Advertência | Mensagem |
|---|---|
| Aviso do compilador (nível 4, não é mais emitido) C4001 | foi utilizada uma extensão não normalizada «comentário de linha única» |
| Aviso do compilador (nível 1, erro) C4002 | demasiados argumentos para a invocação de macro semelhante a uma função 'identificador' |
| Aviso do compilador (nível 1, erro) C4003 | não há argumentos suficientes para a invocação de uma macro semelhante a função 'identificador' |
| Aviso do compilador (nível 1) C4005 | 'identificador': redefinição de macro |
| Aviso do compilador (nível 1) C4006 | Esperava-se um identificador #undef |
| Aviso do compilador (nível 3) C4007 | 'função': deve ser 'atributo' |
| Aviso do compilador (nível 3) C4008 | 'função': 'atributo' atributo ignorado |
| Aviso do compilador (nível 1) C4010 | comentário de linha única contém carácter de continuação de linha |
| Aviso do compilador (nível 3) C4013 | 'função' indefinida; assumindo o retorno externo int |
| Aviso do compilador (nível 1) C4015 | 'identificador': tipo de campo de bit deve ser integral |
| Aviso do compilador (nível 3) C4018 | 'expressão': incompatibilidade assinada/não assinada |
| Aviso do compilador (nível 4) C4019 | Declaração vazia no âmbito global |
| Aviso do compilador (nível 1) C4020 | «Função»: demasiados parâmetros reais |
| Aviso do compilador (nível 1) C4022 | 'função': incompatibilidade de ponteiro para o parâmetro real parameter_number |
| Aviso do compilador (nível 1) C4023 | 'função': ponteiro baseado passado para função não prototipada: parâmetro parameter_number |
| Aviso do compilador (nível 1) C4024 | 'função': diferentes tipos de parâmetros formais e reais parameter_number |
| Aviso do compilador (nível 1) C4025 | 'função': ponteiro baseado passado para 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 formal |
| Aviso do compilador (nível 1) C4027 | função declarada sem lista de parâmetros formal |
| 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 declarados diferentes da definição |
| Aviso do compilador (nível 1) C4030 | primeira lista de parâmetros formais mais longa do que a segunda lista |
| Aviso do compilador (nível 1) C4031 | segunda lista de parâmetros formais mais longa do que a primeira lista |
| Aviso do compilador (nível 4) C4032 | parâmetro formal parameter_number tem tipo diferente quando promovido |
| Aviso do compilador (nível 1) C4033 | 'função' deve retornar um valor |
| Aviso do compilador (nível 1) C4034 | sizeof retorna 0 |
| Aviso do compilador (nível 3) C4035 | 'função': sem valor de retorno |
| Aviso do compilador (nível 1) C4036 | 'tipo' sem nome como parâmetro real |
| Aviso do compilador (nível 1) C4038 | 'modificador': 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 | 'identificador': tem classe de armazenamento incorreta |
| Aviso do compilador (nível 1) C4045 | 'array': transbordo de limites de matriz |
| Aviso do compilador (nível 1) C4047 | 'operador': 'identifier1' difere em níveis de indireção de 'identifier2' |
| Aviso do compilador (nível 1) C4048 | diferentes índices de matriz: 'identifier1' e 'identifier2' |
| Aviso do compilador (nível 1) C4049 | Limite do compilador: emissão do número da linha ao terminar |
| Aviso do compilador (nível 1) C4051 | conversão de tipos; possível perda de dados |
| Aviso do compilador (nível 1 e nível 4) C4052 | declarações de função diferentes; um contém argumentos variáveis |
| Aviso do compilador (nível 4) C4053 | um operando vazio para '?:' |
| Aviso do compilador (nível 1) C4055 | 'conversão' : do ponteiro de dados 'tipo1' para o ponteiro de função 'tipo2' |
| Aviso do compilador (nível 2) C4056 | sobrecarga em aritmética de constantes de ponto flutuante |
| Aviso do compilador (nível 4) C4057 | 'operador': 'identifier1' difere em indireção para tipos de base ligeiramente diferentes de 'identifier2' |
| Aviso do compilador (nível 3, desligado) C4060 | A instrução switch não contém rótulos 'caso' ou 'default' |
| Aviso do compilador (nível 4, desligado) C4061 | Enumerador 'identificador' no switch de enum 'enumeração' não é explicitamente manipulado por um rótulo case |
| Aviso do compilador (nível 4, desligado) C4062 | enumerador 'identificador' no switch de enum 'enumeração' não é manipulado |
| Aviso do compilador (nível 4) C4063 | caso 'identificador' não é um valor válido para switch de enum 'enumeração' |
| Aviso do compilador (nível 4) C4064 | Alternativa de enumeração incompleta enum '' |
| Aviso do compilador (nível 3, desligado) C4065 | A instrução switch contém 'default', mas não contém rótulos 'case' |
| Aviso do compilador (nível 3) C4066 | caracteres além do primeiro em constante de caracteres largos ignorados |
| Aviso do compilador (nível 1) C4067 | Símbolos inesperados após a diretiva de pré-processador - esperava-se uma nova linha |
| Aviso do compilador (nível 1) C4068 | pragma desconhecido 'identificador' |
| Aviso do compilador C4069 | long double 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 na área de inicialização reservada do compilador |
| Aviso do compilador (nível 1) C4075 | inicializadores colocados na área de inicialização não reconhecida |
| Aviso do compilador (nível 1) C4076 | 'modificador_de_tipo': 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 inesperado 'token' |
| Aviso do compilador (nível 1) C4080 | identificador esperado para o nome do segmento; encontrado 'símbolo' |
| Aviso do compilador (nível 1) C4081 | esperado 'token1'; encontrado 'token2' |
| Aviso do compilador (nível 1) C4083 | esperava-se 'token'; encontrou-se identificador 'identificador' |
| Aviso do compilador (nível 1) C4085 | Espera-se que o parâmetro pragma seja 'on' ou 'off' |
| Aviso do compilador (nível 1) C4086 | o parâmetro pragma esperado é '1', '2', '4', '8' ou '16' |
| Aviso do compilador (nível 1) C4087 | 'função': declarada com 'void' lista de parâmetros |
| Aviso do compilador (nível 1) C4088 | 'função': incompatibilidade de ponteiro no parâmetro real parameter_number, parâmetro formal parameter_number |
| Aviso do compilador (nível 1) C4089 | 'função': diferentes tipos no parâmetro real número_do_parâmetro, parâmetro formal número_do_parâmetro |
| Aviso do compilador (nível 1) C4090 | 'operação': diferentes 'modificador' qualificadores |
| Aviso do compilador (nível 1 e nível 2) C4091 | 'palavra-chave': ignorado à esquerda de 'digite' quando nenhuma variável é declarada |
| Aviso do compilador (nível 4) C4092 | sizeof retorna 'longo não assinado' |
| Aviso do compilador (nível 2) C4094 | não etiquetado 'símbolo' declarado sem símbolos |
| Aviso do compilador (nível 1) C4096 | 'identificador': a interface não é uma interface COM; não será incluída no IDL |
| Aviso do compilador (nível 1) C4097 | Espera-se que o parâmetro pragma seja 'restore' ou 'off' |
| Aviso do compilador (nível 1) C4098 | Função '': 'void' função que retorna um valor |
| Aviso do compilador (nível 2) C4099 | 'identificador': tipo de nome visto pela primeira vez usando 'objeto_tipo1' agora visto usando 'objeto_tipo2' |
| Aviso do compilador (nível 4) C4100 | 'identificador': parâmetro não referenciado |
| 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 | 'rótulo': rótulo não referenciado |
| Aviso do compilador (nível 1) C4103 | alinhamento alterado após a inclusão do cabeçalho, pode ser devido à falta de #pragma pack(pop) |
| Aviso do compilador (nível 1) C4109 | identificador inesperado 'identificador' |
| 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 nas listas de parâmetros de 'identifier2' |
| Aviso do compilador (nível 1) C4114 | mesmo qualificador de tipo usado mais de uma vez |
| Aviso do compilador (nível 1 e nível 4) C4115 | 'tipo': 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 'nome' é reservado, o 'comando' foi ignorado. |
| Aviso do compilador (nível 1) C4119 | diferentes bases 'base1' e 'base2' especificadas |
| Aviso do compilador (nível 1) C4120 | desfasamento fundamentado/não fundamentado |
| Aviso do compilador (nível 4) C4121 | 'símbolo': o alinhamento de um elemento era sensível ao empacotamento |
| Aviso do compilador (nível 1) C4122 | 'função': alloc_text aplicável apenas a funções com ligação em C |
| Aviso do compilador (nível 1) C4123 | diferentes expressões de base especificadas |
| Aviso do compilador (nível 1) C4124 | __fastcall com a verificação da pilha é ineficiente |
| Aviso do compilador (nível 4) C4125 | o dígito decimal termina 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 | 'carácter': sequência de escape de carácter não reconhecida |
| Aviso do compilador (nível 4) C4130 | 'operador': operação lógica sobre o endereço da constante de cadeia de caracteres |
| Aviso do compilador (nível 4) C4131 | 'função': usa declarador antigo |
| Aviso do compilador (nível 4) C4132 | 'objeto': const objeto deve ser inicializado |
| Aviso do compilador (nível 1 e nível 3) C4133 | 'expressão': tipos incompatíveis - de 'tipo1' a 'tipo2' |
| Aviso do compilador C4137 | 'função': nenhum valor de retorno da função de ponto flutuante |
| Aviso do compilador (nível 1) C4138 | '*/' encontrado fora do comentário |
| Aviso do compilador (nível 1, erro) C4141 | "modificador": utilizado mais do que uma vez |
| Aviso do compilador (nível 1) C4142 | 'identificador': redefinição benigna do tipo |
| Aviso do compilador (nível 1) C4143 |
pragma 'same_seg' não é suportado; utilize a alocação __based |
| Aviso do compilador (nível 1) C4144 | 'expressão': expressão relacional como expressão switch |
| Aviso do compilador (nível 1) C4145 | 'expression1': expressão relacional como expressão de switch; possível confusão com 'expression2' |
| Aviso do compilador (nível 2) C4146 | operador menos unário aplicado ao tipo não assinado, resultado ainda não assinado |
| Aviso do compilador (nível 2) C4150 | eliminação do ponteiro para o tipo incompleto 'tipo'; nenhum destrutor chamado |
| Aviso do compilador (nível 4) C4152 | extensão não padrão, conversão de ponteiro de função/dados na expressão |
| Aviso do compilador (nível 1) C4153 | conversão de função/ponteiro de dados na expressão |
| Aviso do compilador (nível 1) C4154 | exclusão de uma expressão de matriz; conversão para ponteiro fornecido |
| Aviso do compilador (nível 1) C4155 | Exclusão de uma expressão de matriz sem usar a forma de matriz de 'excluir' |
| Aviso do compilador (nível 2) C4156 | supressão de uma expressão de matriz sem utilizar a forma de matriz de «eliminar»; forma de matriz substituída |
| Aviso do compilador (nível 1) C4157 | pragma foi ignorado pelo compilador C |
| Aviso do compilador (nível 1) C4158 | assumindo #pragma pointers_to_members(full_generality, tipo_herança) |
| Aviso do compilador (nível 3) C4159 |
#pragma
pragma(pop,...): apareceu anteriormente empurrado identificador 'identificador' |
| Aviso do compilador (nível 1) C4160 |
#pragma
pragma(pop,...): não encontrou identificador previamente empurrado 'identificador' |
| Aviso do compilador (nível 3) C4161 |
#pragma
pragma(pop...): mais pops do que pushes |
| Aviso do compilador (nível 1) C4162 | 'identificador': não foi encontrada nenhuma função com ligação C |
| Aviso do compilador (nível 1) C4163 | 'identificador': não disponível como função intrínseca |
| Aviso do compilador (nível 1) C4164 | 'função': função intrínseca não declarada |
| Aviso do compilador (nível 3, desligado) C4165 | 'HRESULT' está sendo convertido em 'bool'; Tem certeza de que é isso que você quer? |
| Aviso do compilador (nível 1) C4166 | convenção de chamada ilegal para construtor/destruidor |
| Aviso do compilador (nível 1) C4167 | 'função': disponível apenas como função intrínseca |
| Aviso do compilador (nível 1) C4168 | Limite do compilador: Fora dos tipos de depurador, exclua o banco de dados do programa 'banco de dados' e reconstrua |
| Aviso do compilador (nível 1) C4172 | endereço de retorno da variável local ou temporária : optional_context |
| Aviso do compilador (nível 1) C4174 | 'nome': não disponível como #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 | 'subcomponente': subcomponente desconhecido para o navegador #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 |
case constante 'constante' demasiado grande para o tipo de expressão do interruptor |
| Aviso do compilador (nível 4, não é mais emitido) C4179 | '//*': analisado como '/' e '/\*': confusão com os comentários de padrão '//' |
| Aviso do compilador (nível 1) C4180 | qualificador aplicado ao tipo de função não tem significado; ignorado |
| Aviso do compilador C4181 | qualificador aplicado ao tipo de referência; ignorado |
| Aviso do compilador (nível 1) C4182 |
#include nível de nidificação é nest_count profundo; possível recursão infinita |
| Aviso do compilador (nível 1) C4183 | 'identificador': tipo de retorno ausente; assumido como uma função de membro retornando 'int' |
| Aviso do compilador (nível 1) C4185 | ignorar o atributo desconhecido de importação #' atributo' |
| Aviso do compilador (nível 1) C4186 |
#
importar atributo 'atributo' requer argument_count argumentos; ignorado |
| Aviso do compilador (nível 1) C4187 |
#import atributos 'atributo1' e 'atributo2' 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 | 'identificador': variável local é inicializada, mas não referenciada |
| Aviso do compilador (nível 1) C4190 | 'identifier1' tem especificação de ligação C, mas retorna 'identifier2' que é incompatível com C |
| Aviso do compilador (nível 3, desligado) C4191 | 'operação': conversão insegura de 'tipo_de_expressão' para 'tipo_requerido' Fazer uma chamada de função usando o ponteiro resultante pode fazer com que o programa falhe |
| Aviso do compilador (nível 3) C4192 | Excluindo automaticamente o identificador '' ao importar a biblioteca de tipos '' |
| 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 utilizado sem correspondência #pragma start_map_region; ignorado |
| Aviso do compilador (nível 1) C4196 | esperado 'token1' ou 'token2'; encontrado 'token3' |
| Aviso do compilador (nível 3) C4197 | 'tipo': volatile de nível superior no escalonamento é ignorado |
| Aviso do compilador (nível 1, nível 2, nível 3 e nível 4) C4199 | mensagem |
Ver também
Erros e avisos do compilador C/C++ e das ferramentas de compilação
Avisos do compilador C4000 - C5999