Compartilhar via


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 #pragmapragma_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