Avisos do compilador Microsoft C/C++ C4200 a C4399
Os artigos nesta seção descrevem mensagens de aviso do compilador Microsoft C/C++ C4200 a C4399.
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 2 e nível 4) C4200 | extensão não padrão usada: matriz de tamanho zero no struct/união |
Aviso do compilador (nível 4) C4201 | extensão não padrão usada: struct/união sem nome |
Aviso do compilador (nível 4) C4202 | extensão não padrão usada: '... ': parâmetro de protótipo na lista de nomes ilegal |
Aviso do compilador C4203 | extensão não padrão usada: união com variável de membro estático |
Aviso do compilador (nível 4) C4204 | extensão não padrão usada: inicializador de agregação não constante |
Aviso do compilador (nível 4) C4205 | extensão não padrão usada: declaração de função estática no escopo da função |
Aviso do compilador (nível 4) C4206 | extensão não padrão usada: a unidade de tradução está vazia |
Aviso do compilador (nível 4) C4207 | extensão não padrão usada: formulário de inicializador estendido |
Aviso do compilador (nível 4) C4208 | extensão não padrão usada: delete [exp] - exp avaliado, mas ignorado |
Aviso do compilador (nível 4) C4210 | extensão não padrão usada: escopo de arquivo especificado da função |
Aviso do compilador (nível 4) C4211 | extensão não padrão usada: extern redefinido como estático |
Aviso do compilador (nível 4) C4212 | extensão não padrão usada: a declaração de função usou reticências |
Aviso do compilador (nível 4) C4213 | extensão não padrão usada: conversão em l-value |
Aviso do compilador (nível 4) C4214 | extensão não padrão usada: tipos de campo de bits diferentes de int |
Aviso do compilador (nível 1) C4215 | extensão não padrão usada: long float |
Aviso do compilador (nível 1) C4216 | extensão não padrão usada: float long |
Aviso do compilador (nível 4) C4218 | extensão não padrão usada: é necessário especificar pelo menos uma classe de armazenamento ou um tipo |
Aviso do compilador (nível 4) C4220 | varargs corresponde aos parâmetros restantes |
Aviso do compilador (nível 4) C4221 | extensão não padrão usada: 'identifier': não pode ser inicializado usando endereço de variável automática 'variable' |
Aviso do compilador (nível 1 e nível 4) C4223 | extensão não padrão usada: matriz não lvalue convertida em ponteiro |
Aviso do compilador (nível 1) C4224 | extensão não padrão usada: parâmetro formal 'identifier' anteriormente definido como um tipo |
Aviso do compilador (nível 1, erro) C4226 | extensão não padrão usada: 'keyword' é uma palavra-chave obsoleta |
Aviso do compilador (nível 1) C4227 | anacronismo usado: qualificadores na referência são ignorados |
Aviso do compilador (nível 1) C4228 | extensão não padrão usada: qualificadores após a vírgula na lista de declaradores são ignorados |
Aviso do compilador (nível 1, erro) C4229 | anacronismo usado: modificadores em dados são ignorados |
Aviso do compilador (nível 1) C4230 | anacronismo usado: modificadores/qualificadores intercalados; qualificador ignorado |
Aviso do compilador (nível 4) C4232 | extensão não padrão usada: 'identifer': o endereço de dllimport 'dllimport' não é estático, identidade não garantida |
Aviso do compilador (nível 1, erro) C4233 | extensão não padrão usada: a palavra-chave 'keyword' só é compatível com C++, não com C |
Aviso do compilador (nível 4, erro) C4234 | extensão não padrão usada: a palavra-chave 'keyword' está reservada para uso futuro |
Aviso do compilador (nível 1, Erro) C4235 | extensão não padrão usada: a palavra-chave 'keyword' é incompatível com esta arquitetura |
Aviso do compilador (nível 1) C4237 | A palavra-chave 'keyword' ainda não é compatível, mas está reservada para uso futuro |
Aviso do compilador (nível 4) C4238 | extensão não padrão usada: classe rvalue usada como lvalue |
Aviso do compilador (nível 4) C4239 | extensão não padrão usada: 'token': conversão de 'type1' para 'type2' |
Aviso do compilador (nível 3) C4240 | extensão não padrão usada: acesso a 'classname' agora definido como 'access_specifier1', anteriormente ele foi definido como 'access_specifier2' |
Aviso do compilador (nível 3, desligado) C4242 | 'identifier': conversão de 'type1' para 'type2', possível perda de dados |
Aviso do compilador (nível 3) C4243 | conversion_type a conversão de 'type1' para 'type2' existe, mas está inacessível |
Aviso do compilador (nível 2) C4244 | 'conversion_type': conversão de 'type1' para 'type2', possível perda de dados |
Aviso do compilador (nível 2 e nível 3 e nível 4) C4244 | 'conversion_type': conversão de 'type1' para 'type2', possível perda de dados |
Aviso do compilador (nível 4) C4245 | 'conversion_type' : conversão de 'type1' para 'type2', incompatibilidade entre com sinal/sem sinal |
Aviso do compilador (nível 2) C4250 | 'classname': herda 'base_classname::member' via dominância |
Aviso do compilador (nível 2) C4251 | 'object_type1': 'identifier1' precisa ter uma dll-interface para ser usada por clientes do 'identfier2' |
Aviso do compilador (nível 4, desligado) C4254 | “operador”: conversão de “type1”:”field_bits” para “type2”:”field_bits”, possível perda de dados |
Aviso do compilador (nível 4, desativado) C4255 | 'function': nenhum protótipo de função fornecido: convertendo '()' em '(void)' |
Aviso do compilador (nível 4) C4256 | 'function': o construtor da classe com bases virtuais tem '... '; as chamadas podem não ser compatíveis com versões mais antigas do Visual C++ |
Aviso do compilador (nível 1) C4258 | 'variable': a definição do loop for é ignorada; é utilizada a definição do escopo delimitador |
Aviso do compilador (nível 4, desativado) C4263 | 'function': a função membro não substitui nenhuma função membro virtual da classe base |
Aviso do compilador (nível 4, desativado) C4264 | 'virtual_function': nenhuma substituição disponível para a função membro virtual da 'classname' base; a função é ocultada |
Aviso do compilador (nível 3, desativado) C4265 | "classname": a classe tem funções virtuais, mas o seu destruidor não trivial não é virtual; as instâncias desta classe podem não ser destruídas corretamente |
Aviso do compilador (nível 4, desativado) C4266 | 'virtual_function': nenhuma substituição disponível para a função membro virtual da 'classname' base; a função é ocultada |
Aviso do compilador (nível 3) C4267 | 'variable': conversão de 'size_t' em 'type', possível perda de dados |
Aviso do compilador (nível 4) C4268 | 'identifier': dados estáticos/globais 'const' inicializados com o construtor padrão gerado pelo compilador preenchem o objeto com zeros |
Aviso do compilador (nível 1) C4269 | 'identificador': dados automáticos 'const' inicializados com construtor padrão gerado pelo compilador produzem resultados não confiáveis |
Aviso do compilador (nível 1) C4272 | 'function': é marcada como __declspec(dllimport); precisa especificar a convenção de chamada nativa ao importar uma função. |
Aviso do compilador (nível 1) C4273 | 'function': vínculo de dll inconsistente |
Aviso do compilador (nível 1) C4274 | #ident ignorado; consulte a documentação de #pragma comment(exestr, 'string') |
Aviso do compilador (nível 2) C4275 | não dll-interface classkey 'identifier1' usado como base para dll-interface classkey 'identifier2' |
Aviso do compilador (nível 1) C4276 | 'function' : nenhum protótipo fornecido; presumido que não há nenhum parâmetro |
Aviso do compilador (nível 1) C4277 | o item 'classname::member' importado existe como membro de dados e como membro de função; o membro de dados é ignorado |
Aviso do compilador (nível 3 e nível 4) C4278 | 'identifier': o identificador na biblioteca de tipos 'library' já é uma macro; use o qualificador 'rename' |
Aviso do compilador (níveis 3 e 4) C4279 | 'identifier': o identificador na biblioteca de tipos 'library' é uma palavra-chave; use o qualificador 'rename' |
Aviso do compilador (nível 3) C4280 | 'operator -> ' era auto recursivo através do tipo 'type' |
Aviso do compilador (nível 3) C4281 | recursão 'operator -> ' ocorrida através do tipo 'type1' |
Aviso do compilador (nível 3) C4282 | depois, através do tipo 'type2' |
Aviso do compilador (nível 3) C4283 | e por meio do tipo 'typeN' |
Aviso do compilador (nível 2) C4285 | O tipo de retorno para 'identifier::operator -> ' é recursivo se aplicado usando uma notação de infixo |
Aviso do compilador (nível 1) C4286 | 'derived_type': é capturado pela classe base ('base_type') na linha line_number |
Aviso do compilador (nível 3, desativado) C4287 | 'operator': incompatibilidade de constante sem sinal/negativa |
Aviso do compilador (nível 1) C4288 | extensão não padrão usada: 'variable': a variável de controle de loop declarada em loop for é usada fora do escopo do loop for; ela está em conflito com a declaração no escopo externo |
Aviso do compilador (nível 4, desativado) C4289 | extensão não padrão usada: 'variable': variável de controle de loop declarada no loop for é usada fora do escopo do loop for |
Aviso do compilador (nível 3) C4290 | Especificação de exceção C++ ignorada, exceto para indicar que uma função não é __declspec(nothrow) |
Aviso do compilador (nível 1) C4291 | 'declaration': nenhum operador delete encontrado; a memória não será liberada se a inicialização gerar uma exceção |
Aviso do compilador (nível 1) C4293 | 'shift_operator': contagem de deslocamento negativa ou muito grande, comportamento indefinido |
Aviso do compilador (nível 4) C4295 | 'array': a matriz é muito pequena para incluir um caractere nulo de terminação |
Aviso do compilador (nível 4, desativado) C4296 | 'operator': a expressão é sempre boolean_value |
Aviso do compilador (nível 1) C4297 | 'function': a função não deveria gerar uma exceção, mas gera |
Aviso do compilador (nível 4) C4298 | 'identifier': o identificador na biblioteca de tipos 'library' já é uma macro; renomeando para '__identifier' |
Aviso do compilador (nível 4) C4299 | 'identifier': o identificador na biblioteca de tipos 'library' é uma palavra-chave; renomeando para '__identifier' |
Aviso do compilador C4301 | 'derived_class::function': substituir a função virtual só difere de 'base_class::function' pelo qualificador const/volatile |
Aviso do compilador (nível 2) C4302 | 'conversion': truncamento de 'type1' para 'type2' |
Advertência do compilador (não é mais emitida) C4303 | A conversão no estilo C de 'type1' para 'type2' está obsoleta, use static_cast , __try_cast ou dynamic_cast |
Aviso do compilador (nível 1 e nível 2 e nível 4) C4305 | 'conversion': truncamento de 'type1' para 'type2' |
Aviso do compilador (nível 4) C4306 | 'conversion': conversão de 'type1' em 'type2' de tamanho maior |
Aviso do compilador (nível 2) C4307 | 'operator': estouro de constante integral assinada |
Aviso do compilador (nível 2) C4308 | constante integral negativa convertida para tipo sem sinal |
Aviso do compilador (nível 2) C4309 | 'conversão': truncamento do valor constante |
Aviso do compilador (nível 4) C4310 | a conversão trunca o valor constante |
Aviso do compilador (nível 1) C4311 | 'variable': truncamento de ponteiro de 'type1' para 'type2' |
Aviso do compilador (nível 1) C4312 | 'operation': conversão de 'type1' em 'type2' de tamanho maior |
Aviso do compilador (nível 1) C4313 | 'function': '% format_specifier' na cadeia de caracteres de formato entra em conflito com o argumento argument_number do tipo 'type' |
Aviso do compilador C4314 | esperado parâmetro de pragma como '32' ou '64' |
Aviso do compilador (nível 4) C4315 | 'classname': o ponteiro 'this' para o membro 'member' pode não estar alinhado alignment como esperado pelo construtor |
Aviso do compilador (nível 3) C4316 | 'identifier': objeto alocado no heap pode não estar alinhado alignment |
Aviso do compilador (nível 1) C4317 | 'printf_family': não há argumentos suficientes transmitidos para a cadeia de caracteres de formato |
Aviso do compilador C4318 | passando constante zero como o comprimento para memset |
Aviso do compilador (nível 1) C4319 | 'operator' : zero estendendo 'type1' para 'type2' de maior tamanho |
Aviso do compilador (nível 1) C4321 | gerando automaticamente um IID para a interface 'interface' |
Aviso do compilador (nível 1) C4322 | gerando automaticamente um CLSID para a classe 'class' |
Aviso do compilador (nível 1) C4323 | reutilizando CLSID registrado para a classe 'class' |
Aviso do compilador (nível 4) C4324 | "structname": a estrutura foi preenchida devido ao especificador de alinhamento |
Aviso do compilador (nível 1) C4325 | atributos para seção padrão 'section' ignorados |
Aviso do compilador (nível 1) C4326 | o tipo de retorno de 'function' deve ser 'type1' em vez de 'type2' |
Aviso do compilador C4327 | 'assignment': o alinhamento de indireção de LHS ('alignment1') é maior que de RHS ('alignment2') |
Aviso do compilador C4328 | 'function': o alinhamento de indireção do parâmetro formal parameter_number (parameter_alignment) é maior que o alinhamento real do argumento (argument_alignment) |
Aviso do compilador (nível 1) C4329 | especificador de alinhamento é ignorado em enum |
Aviso do compilador (nível 1) C4330 | atributo 'attribute' para a seção 'section' ignorado |
Aviso do compilador (nível 1) C4333 | 'shift_operator': deslocamento para a direita por valor muito grande, perda de dados |
Aviso do compilador (nível 3) C4334 | 'shift_operator': resultado do deslocamento de 32 bits convertido implicitamente para 64 bits (o deslocamento era destinado a ser de 64 bits?) |
Aviso do compilador (nível 1) C4335 | Formato de arquivo Mac detectado: converta o arquivo de origem para formato DOS ou UNIX |
Aviso do compilador (nível 4) C4336 | importe a biblioteca de tipos de referência cruzada 'library1' antes de importar 'library2' |
Aviso do compilador (nível 4) C4337 | a biblioteca de tipos de referência cruzada 'library1' em 'library2' está sendo importada automaticamente |
Aviso do compilador (nível 4) C4338 | #pragma directive: a seção padrão 'section' é usada |
Aviso do compilador (nível 4, desativado) C4339 | 'type': uso de um tipo indefinido detectado nos metadados de 'WinRT|CLR' – usar esse tipo pode gerar uma exceção de runtime |
Aviso do compilador (nível 1) C4340 | 'value' : valor convertido de positivo para negativo |
Aviso do compilador (nível 1, desativado, não emitido) C4342 | alteração de comportamento: 'function' é chamado, mas um operador de membro foi chamado em versões anteriores |
Aviso do compilador (nível 4) C4343 | #pragma optimize("g",off) substitui a opção /Og |
Aviso do compilador (nível 1) C4344 | alteração de comportamento: o uso de argumentos de modelo explícitos resulta em chamada para 'function' |
Aviso do compilador (nível 1) C4346 | 'name': o nome dependente não é um tipo |
Aviso do compilador (nível 1) C4348 | 'type': redefinição do parâmetro padrão: parâmetro parameter_number |
Aviso do compilador (nível 1, não emitido) C4350 | alteração de comportamento: 'member1' chamado no lugar de 'member2' |
Aviso do compilador (nível 1) C4352 | 'identifier': função intrínseca já definida |
Aviso do compilador (nível 1) C4353 | Extensão não padrão usada: constante 0 como expressão de função. Em vez disso, use a função '__noop' intrínseca |
Aviso do compilador (nível 1 e nível 4, desativado) C4355Aviso do compilador (nível 1 e nível 4) C4355 | 'this' : usado na lista de inicializadores do membro base |
Aviso do compilador (nível 2) C4356 | 'membro': um membro de dados estático não pode ser inicializado via classe derivada |
Aviso do compilador (nível 3) C4357 | argumento de matriz de parâmetros encontrado na lista de argumentos formais para o delegado 'delegate' ignorado ao gerar 'function' |
Aviso do compilador (nível 1) C4358 | 'operador': o tipo de retorno de delegados combinados não é 'void'; o valor retornado é indefinido |
Aviso do compilador (nível 1 e nível 3) C4359 | 'type': O especificador de alinhamento é menor do que o alinhamento real (alignment) e será ignorado. |
Aviso do compilador (nível 2) C4362 | 'type': um alinhamento maior do que 8 bytes é incompatível com o CLR |
Aviso do compilador (nível 1) C4364 | #using para o conjunto 'assembly' visto anteriormente em location(line_number) sem o atributo as_friend ; as_friend não aplicado |
Aviso do compilador (nível 4, desativado) C4365 | 'expression': conversão de 'type1' para 'type2', incompatibilidade entre com sinal/sem sinal |
Aviso do compilador (nível 4) C4366 | O resultado do operador 'operator' unário pode estar desalinhado |
Aviso do compilador (nível 3) C4367 | A conversão de 'type1' para 'type2' pode causar uma exceção de desalinhamento de tipo de dados |
Aviso do compilador (nível 1, Erro) C4368 | não é possível definir 'member' como um membro de 'type' gerenciado: tipos mistos não são compatíveis |
Aviso do compilador (nível 1) C4369 | 'enumerador' : o valor do enumerador 'value' não pode ser representado como 'type', o valor é 'new_value' |
Aviso do compilador (nível 4, não é mais emitido) C4370 | 'classname': o layout da classe foi alterado de uma versão anterior do compilador devido ao melhor empacotamento |
Aviso do compilador (nível 3, desativado) C4371 | 'classname': o layout da classe pode ter sido alterado de uma versão anterior do compilador devido a um melhor empacotamento do membro 'member' |
Aviso do compilador (nível 4) C4373 | 'function': a função virtual substitui 'base_class_function'; e as versões anteriores do compilador não substituíam quando os parâmetros diferiam apenas por qualificadores const/volatile |
Aviso do compilador (nível 1) C4374 | 'function1': o método de interface não será implementado pelo método não virtual 'function2' |
Aviso do compilador (nível 1) C4375 | o método não público 'method2' não substitui 'method2' |
Aviso do compilador (nível 1) C4376 | especificador de acesso 'specifier1 specifier2:' não tem mais suporte: em vez disso, use 'new_specifier:' |
Aviso do compilador (nível 1) C4377 | tipos nativos são privados por padrão; -d1PrivateNativeTypes foi preterido |
Aviso do compilador (nível 1) C4378 | É preciso obter ponteiros de função para executar inicializadores; considere o uso de System::ModuleHandle::ResolveMethodHandle |
Aviso do compilador (nível 1) C4379 | A versão 'version_number' do Common Language Runtime não é compatível com este compilador. Usar essa versão pode causar resultados inesperados |
Aviso do compilador (nível 1, erro) C4380 | 'class': não é possível preterir um construtor padrão |
Aviso do compilador (nível 1) C4381 | 'function1': o método de interface não será implementado pelo método não público 'function2' |
Aviso do compilador (nível 1) C4382 | lançando 'type': um tipo com __clrcall destruidor ou construtor de cópias só pode ser capturado no módulo /clr:pure |
Aviso do compilador (nível 1) C4383 | 'instance_dereference_operator': o significado de desreferenciar um identificador pode mudar quando um operador 'instance_dereference_operator' definido pelo usuário existe; grave o operador como uma função estática para ser explícito sobre o operando |
Aviso do compilador (nível 1) C4384 | #pragma “pragma_name” só deve ser usado em escopo global |
Aviso do compilador (nível 3) C4387 | 'alternative': foi considerado |
Aviso do compilador (nível 4, desativado) C4388) | 'expression': incompatibilidade entre com sinal/sem sinal |
Aviso do compilador (nível 4) C4389 | 'operator': incompatibilidade entre com sinal/sem sinal |
Aviso do compilador (nível 3) C4390 | ';': instrução controlada vazia encontrada; esta é a intenção? |
Aviso do compilador (nível 1) C4391 | 'function_signature': tipo de retorno incorreto para função intrínseca, 'type' era esperado |
Aviso do compilador (nível 1, Erro) C4392 | 'function_signature': número incorreto de argumentos para função intrínseca, 'number' argumentos eram esperados |
Aviso do compilador (nível 1) C4393 | 'variable': const não tem efeito sobre o membro de dados literal; ignorado |
Aviso do compilador (nível 1, Erro) C4394 | 'function': o símbolo per-appdomain não deve ser marcado com __declspec( dllexport) |
Aviso do compilador (nível 1) C4395 | 'function': a função membro será invocada em uma cópia do membro de dados initonly 'member' |
Aviso do compilador (nível 2) C4396 | 'function': o especificador embutido não pode ser usado quando uma declaração friend se refere a uma especialização de um modelo de função |
Aviso do compilador (nível 1) C4397 | DefaultCharSetAttribute é ignorado |
Aviso do compilador (nível 3) C4398 | 'variable': o objeto global por processo pode não funcionar corretamente com vários domínios de aplicativos; considere o uso de __declspec(appdomain) |
Aviso do compilador (nível 1, Erro) C4399 | 'symbol': o símbolo por processo não deve ser marcado com __declspec( dllimport) quando compilado com /clr:pure |
Confira também
Compilador C/C++ e erros e avisos de ferramentas de compilação
Avisos do Compilador C4000 - C5999