Compartilhar via


Análise de código para avisos de C/C++

Esta seção lista de avisos de análise de código C/C++ no intervalo de C6000 para C6999.

Nesta seção

Número do Aviso

Descrição

C6001

Aviso C6001: usando o <variable> de memória não inicializada

C6011

Aviso C6011: <name> de ponteiro nulo de referência

C6029

Aviso C6029: chamada para <function> de saturação de buffer possível: uso de valor não verificado

C6031

Aviso C6031: retorne o valor ignorado: <function> poderia retornar o valor inesperado

C6053

Aviso C6053: chamada para <function> pode não zero-encerrar a seqüência de caracteres <variable>.

C6054

Aviso C6054: a seqüência de caracteres <variable>. pode não ser terminada em zero

C6057

Aviso C6057: devido ao número de caracteres/número de incompatibilidade de bytes na chamada para <function> de saturação de buffer

C6059

Aviso C6059: Parâmetro de comprimento incorreto na chamada para <function>. Passa o número de caracteres restantes, não o tamanho do buffer de <variable>

C6063

Aviso C6063: argumento ausente da seqüência de caracteres para <function> correspondente para o especificador de conversão <number>

C6064

Aviso C6064: argumento de inteiro ausente para <function> correspondente para o especificador de conversão <number>

C6066

Aviso C6066: não ponteiro é passado como o parâmetro <number> Quando o ponteiro é necessária na chamada para <function>

C6067

Aviso C6067: parâmetro <number> na chamada para <function> deve ser o endereço da seqüência de caracteres

C6200

Aviso C6200: índice <name> está fora do intervalo de índice válido <min> Para <max> o buffer de pilha não <variable>

C6201

Aviso C6201: saturação de buffer para <variable>, que é possivelmente a pilha alocada: índice <name> está fora do intervalo de índice válido <min> Para <max>

C6202

Aviso C6202: de saturação de buffer para <variable>, que é possivelmente a pilha alocada, na chamada para <function>: comprimento de <size> excede o tamanho do buffer <max>

C6203

Aviso C6203: buffer de saturação de buffer <variable> na chamada para <function>: comprimento de <size> excede o tamanho do buffer

AVISO C6204

Aviso aviso C6204: chamada para <function> de saturação de buffer possível: uso do parâmetro desmarcado <variable>

C6209

Aviso C6209: usando 'sizeof <variable1> ' como o parâmetro <number> na chamada para <function> onde <variable2> pode ser uma matriz de caracteres extensos, você pretendia usar contagem de caracteres em vez de contagem de bytes?

C6211

Aviso C6211: Vazamento de memória <pointer> devido a uma exceção. Considere o uso de um bloco catch local para limpar a memória

C6214

Aviso C6214: Converter entre tipos inteiros semanticamente diferentes: HRESULT para um tipo booleano

C6215

Aviso C6215: Converter entre tipos inteiros semanticamente diferentes: um booleano tipo HRESULT

C6216

Aviso C6216: inserido de compilador cast entre semanticamente diferentes tipos de integrais: um booleano tipo HRESULT

C6217

Aviso C6217: Conversão implícita entre tipos inteiros semanticamente diferentes: Testando o HRESULT com 'não'. Considere usar a macro teve êxito ou falha em vez disso

C6219

Aviso C6219: Conversão implícita entre tipos inteiros semanticamente diferentes: Comparando o HRESULT para 1 ou TRUE. Considere usar a macro teve êxito ou falha em vez disso

C6220

Aviso C6220 - conversão implícita entre tipos inteiros semanticamente diferentes: Comparando o HRESULT como -1. Considere usar a macro teve êxito ou falha em vez disso

C6221

Aviso C6221: Conversão implícita entre tipos inteiros semanticamente diferentes: Comparando o HRESULT para um inteiro. Considere o uso de macros teve êxito ou falha em vez disso

C6225

Aviso C6225: Conversão implícita entre tipos inteiros semanticamente diferentes: atribuindo 1 ou TRUE para o HRESULT. Considere usando o S_FALSE

C6226

Aviso C6226: Conversão implícita entre tipos inteiros semanticamente diferentes: atribuindo -1 para o HRESULT. Considere usando o E_FAIL

C6230

Aviso C6230: conversão implícita entre tipos inteiros semanticamente diferentes: usando o HRESULT em um contexto Boolean

C6235

Aviso C6235: (< diferente de zero constante > || <expression>) é sempre uma constante diferente de zero

C6236

Aviso C6236: (<expression> || < diferente de zero constante >) é sempre uma constante diferente de zero

C6237

Aviso C6237: (<zero> & & <expression>) é sempre zero. <expression> nunca é avaliado e pode ter efeitos colaterais

C6239

Aviso C6239: (< diferente de zero constante > & & <expression>) sempre retorna o resultado de <expression>. Você pretendia usar o operador bit a bit- e operador?

C6240

Aviso C6240: (<expression> & & < diferente de zero constante >) sempre avalia o resultado de <expression>. Você pretendia usar o operador bit a bit- e operador?

C6242

Aviso C6242: Um salto desse bloco try-força o desenrolamento de local. Gera a penalidade de desempenho

C6244

Aviso C6244: declaração de local de <variable> oculta a declaração anterior em <line> de <file>

C6246

Aviso C6246: Declaração de local de <variable> oculta a declaração de mesmo nome no escopo externo. Informações adicionais: Consulte a declaração anterior em <location>.

C6248

Aviso C6248: a definição de DACL de um SECURITY_DESCRIPTOR NULL resultarão em um objeto desprotegido

C6250

Aviso C6250: Chamando <function> VirtualFree sem o sinalizador MEM_RELEASE pode liberar memória, mas não os descritores de endereço (VADs); resulta em perdas de espaço de endereço

C6255

Aviso C6255: _alloca indica a falha levantando uma exceção de estouro de pilha. Considere usando o _alloca_s

C6258

Aviso C6258: usar TerminateThread não permite que o segmento correto clean up

C6259

Aviso C6259: código rotulado é inalcançável: (<expression> & <constant>) no switch expr não é possível avaliar < case-rótulo >

C6260

Aviso C6260: sizeof * sizeof quase sempre está errada, você pretendia usar uma contagem de caracteres ou uma contagem de bytes?

C6262

Aviso C6262: Função usa <constant> bytes de pilha: excede /ANALYZE: stacksize <constant>. Considere a movimentação de alguns dados para o heap

C6263

Aviso C6263: usando _alloca em um loop; Isso pode rapidamente de estouro de pilha

C6268

Aviso C6268: Ordem incorreta de operações: (<TYPE1>)(<TYPE2>) x + y. Possíveis faltando parênteses (<TYPE1>) ((<TYPE2>) x + y)

C6269

Aviso C6269: ordem incorreta possível de operações: Referência ignorada

C6270

Aviso C6270: argumento ausente de float para <function>: Adicionar um argumento float correspondente para o especificador de conversão <number>

C6271

Aviso C6271: argumento extra é passado para <function>: parâmetro <number> não é usado pela seqüência de caracteres de formato

C6272

Aviso C6272: não float é passado como o argumento <number> Quando float é necessária na chamada para <function>

C6273

6273 - de aviso não inteiro é passado como o parâmetro <number> Quando o número inteiro é necessária na chamada para <function>: Se o valor do ponteiro está sendo passado, %p deve ser usado.

C6274

Aviso C6274: caracteres não é passado como o parâmetro <number> Quando o caractere é necessária na chamada para <function>

C6276

Aviso C6276: Converter entre tipos de seqüência semanticamente diferente: char * para wchar_t *. Uso de seqüência de caracteres inválida pode levar a um comportamento indefinido

C6277

Aviso C6277: Nome do aplicativo nulo com um caminho sem aspas na chamada para <function>: resulta em uma vulnerabilidade de segurança se o caminho contiver espaços

C6278

Aviso C6278: <variable> é alocada com array [novo], mas excluídos com a exclusão de escalar. Não serão chamados destruidores

C6279

Aviso C6279: <variable> é alocada com escalar novo, excluídos com a exclusão do array]

C6280

Aviso C6280: <variable> alocados com <function>, mas excluída com <function>

C6281

Aviso 6281 - ordem incorreta de operações: operadores relacionais tem precedência maior do que os operadores bit a bit

C6282

Aviso C6282: Operador incorreto: atribuição de constante no contexto de booleano. Considere o uso de '= =' em vez disso

C6283

Aviso C6283: <variable> é alocada com array [novo], mas excluída com delete escalar

C6284

Aviso C6284: objeto passado como parâmetro '% d' Quando a seqüência de caracteres é necessária na chamada para <function>.

C6285

Aviso C6285: (< diferente de zero constante > || < diferente de zero constante >) é sempre uma constante diferente de zero. Você pretendia usar o operador bit a bit- e operador?

C6286

Aviso C6286: (< diferente de zero constante > || <expression>) é sempre uma constante diferente de zero. <expression> nunca é avaliado e pode ter efeitos colaterais

C6287

Aviso C6287: código redundante: os subexpressões esquerdas e direita são idênticos

C6288

Aviso C6288: Operador incorreto: inclusão mútua sobre & & é sempre zero. Tenha a intenção de usar a você | | em vez disso?

C6289

Aviso C6289: Operador incorreto: a exclusão mútua sobre | | é sempre uma constante diferente de zero. Você pretendia usar & & em vez disso?

C6290

Aviso C6290: Operação bit a bit em um resultado lógico: ! tem precedência &. Usar & & ou (! (x & y)) em vez disso

C6291

Aviso C6291: Operação bit a bit em um resultado lógico: ! tem precedência maior do que |. Use | | ou (! (x | y)) em vez disso

C6292

Aviso C6292: mal definido para loop: contagens até no máximo

C6293

Aviso C6293: Mal definido para loop: contagem regressiva a partir do mínimo

C6294

Aviso C6294: Mal definido para loop: condição inicial não satisfaz o teste. Corpo do loop não executado

C6295

Aviso C6295: Mal definido para loop: <variable> os valores são do intervalo "min" para "máximo". Loop executado indefinidamente

C6296

Aviso C6296: Mal definido para loop: Corpo do loop executado apenas uma vez

C6297

Aviso C6297: Estouro aritmético: o valor de 32 bits é deslocado, converter o valor de 64 bits. Resultado não pode ser um valor esperado

C6298

Aviso C6298: usando uma seqüência de somente leitura <pointer> como um argumento de seqüência de caracteres gravável: Isso irá tentar gravar em estática memória somente leitura e causar falhas aleatórias

C6299

Aviso C6299: Comparar explicitamente um campo de bit para um tipo booleano, produzirá resultados inesperados

C6302

Aviso C6302: incompatibilidade de seqüência de caracteres de formato: seqüência de caracteres passada como parâmetro <number> Quando a cadeia de caracteres largos é necessária na chamada para <function> s

C6303

Aviso C6303: incompatibilidade de seqüência de caracteres de formato: cadeia de caracteres largos passada como o parâmetro <number> Quando a seqüência de caracteres é necessária na chamada para <function>

C6305

Aviso C6305: potencial incompatibilidade entre as quantidades de sizeof e countof

C6306

Aviso C6306: chamada incorreta para <function>: Considere o uso de <function> que aceita um va_list como um argumento.

C6308

Aviso C6308: 'possível realocar' pode retornar um ponteiro nulo: atribuir um ponteiro nulo para <variable>, que é passado como um argumento para 'possível realocar', fará com que o bloco de memória original vazamento

C6309

Aviso C6309: argumento <number> é nulo: não adere à especificação de função de <function>

C6310

Aviso C6310: constante ilegal no filtro de exceção pode causar um comportamento inesperado

C6312

Aviso C6312: Possível loop infinito: usar a constante EXCEPTION_CONTINUE_EXECUTION na expressão de filtro de exceção de uma instrução try-exceto

C6313

Aviso C6313: Operador incorreto: Sinalizador com valor zero não pode ser testados com o bit a bit- e. Usar um teste de igualdade para procurar sinalizadores com valor zero

C6314

Aviso C6314: Ordem incorreta de operações: bit a bit- ou tem precedência maior do que o operador de expressão condicional. Adicionar parênteses para esclarecer a intenção

C6315

Aviso C6315: Ordem incorreta de operações: bit a bit- e tem precedência maior do que o bit a bit- ou. Adicionar parênteses para esclarecer a intenção

C6316

Aviso C6316: Operador incorreto: testada a expressão é constante e diferente de zero. Bit a bit de uso- e para determinar se os bits forem definidos

C6317

Aviso C6317: operador incorreto: não lógico-(!) não é intercambiável com aqueles complemento (~)

C6318

Aviso C6318: Mal definido __try / __except: Use a constante EXCEPTION_CONTINUE_SEARCH ou outra constante que é avaliada como zero na expressão de filtro de exceção. O código no bloco do manipulador de exceção não é executado.

C6319

Aviso C6319: usar o operador de vírgula em uma expressão testada faz com que o argumento esquerdo seja ignorado quando tem sem efeitos colaterais

C6320

aviso C6320: expressão de filtro de exceção é a constante EXCEPTION_EXECUTE_HANDLER. Isso pode mascarar exceções que não foram criadas para ser manipulado.

C6322

Aviso C6322: bloco de vazio _except

C6323

Aviso 6323 - uso do operador aritmético em tipos booleanos

C6324

Aviso C6324: possível uso incorreto de <function1>: Você pretendia usar <function2>?

C6326

Aviso C6326: comparação de potencial de uma constante com outra constante

C6327

Aviso C6327: Saturação de buffer possíveis: Cópias de SysAllocStringLen <number> caracteres da seqüência <variable> sem validar o número de caracteres a serem copiados. O código pode falhar.

C6328

Aviso C6328: <type> passado como o parâmetro <number> Quando <type> é necessário chamar <function>

C6331

Aviso C6331: Parâmetro inválido: passando o MEM_RELEASE e MEM_DECOMMIT em conjunto para <function> não é permitido. Isso resultará na falha desta chamada

C6332

Aviso C6332: Parâmetro inválido: a transmissão de zero, como o parâmetro dwFreeType para <function> não é permitido. Isso resultará na falha desta chamada

C6333

Aviso C6333: Parâmetro inválido: passando parâmetros de zero dwSize e MEM_RELEASE para <function> não é permitido. Isso resultará na falha desta chamada

C6334

Aviso C6334: operador sizeof, aplicado a uma expressão com um operador pode produzir resultados inesperados

C6335

Aviso C6335: vazamento de identificador de informações do processo <handlename>.

C6336

Aviso C6336: operador aritmético tem precedência sobre o operador de pergunta, o uso de parênteses para esclarecer a intenção

C6381

Aviso C6381: Desligamento de API <function> requer um dwReason válido ou lpMessage

C6383

Aviso C6383: saturação devido à conversão de uma contagem do elemento em uma contagem de bytes do buffer: uma contagem do elemento é esperada para o parâmetro <number> na chamada para <function>

C6384

Aviso C6384: sizeof um ponteiro de divisão por outro valor

C6385

Aviso C6385: dados inválidos: acessando o < nome do buffer >, o tamanho legível é <size1> bytes, mas <size2> bytes podem ser lidos: Linhas: x, y

C6386

Aviso C6386: saturação de buffer: acessando o < nome do buffer >, o tamanho gravável é <size1> bytes, mas <size2> bytes podem ser gravados: Linhas: x, y

C6387

Aviso C6387: <argument> pode ser <value>: Isso não adere à especificação para a função < nome da função >: Linhas: x, y

C6388

Aviso C6388: <argument> Talvez não seja <value>: Isso não adere à especificação para a função < nome da função >: Linhas: x, y

C6400

Aviso C6400: Usando o < nome da função > para executar um comparar maiúsculas e minúsculas para string constante < nome de seqüência >. Produz resultados inesperados em localidades do inglês

C6401

Aviso C6401: Usando o < nome da função > em uma localidade padrão para executar um comparar maiúsculas e minúsculas para string constante < o nome de seqüência de caracteres >. Produz resultados inesperados em localidades do inglês

C6500

Aviso C6500: anotação inválido: valor para <name> propriedade é inválida

C6501

Aviso C6501: conflito de anotação: <name> propriedade está em conflito com a propriedade especificada anteriormente

C6503

Aviso C6503: conflito de anotação: referências não podem ser marcadas Null = Yes ou Null = talvez

C6504

Aviso C6504: anotação inválido: propriedade só pode ser usada nos valores de ponteiro, um ponteiro para o membro ou tipo de matriz

C6505

Aviso C6505: anotação inválido: A propriedade de MustCheck não pode ser usada nos valores do tipo void

C6506

Aviso C6506: anotação inválido: <name> propriedade só pode ser usada nos valores de ponteiro ou tipos de matriz

C6507

Aviso C6507: conflito de anotação: Nulo de propriedade em Deref = 0 em uma postagem a condição deve ser um subconjunto da propriedade Null a pré-condição

C6508

Aviso C6508: anotação inválido: acesso de gravação não é permitido em valores const

C6509

Aviso C6509: anotação inválido: 'retornar' não pode ser referenciado a partir de uma pré-condição

C6510

Aviso C6510: anotação inválido: A propriedade de NullTerminated pode ser usada somente em valores de ponteiro ou o tipo de matriz

C6511

Aviso C6511: anotação inválido: A propriedade MustCheck deve ser Sim ou não

C6512

Aviso C6512: anotação inválido: Propriedade nula deve ser talvez se a propriedade válida é não

C6513

Aviso C6513: anotação inválido: ElementSizeConst requer propriedades de tamanho adicionais

C6514

Aviso C6514: anotação inválido: valor de <name> propriedade excede o tamanho da matriz

C6515

Aviso C6515 - anotação inválido: <name> propriedade só pode ser usada nos valores do tipo de ponteiro

C6516

Aviso C6516: anotação inválido: nenhuma propriedade especificada para <name> atributo

C6517

Aviso C6517: conflito de anotação: ValidElementsConst e ValidBytesConst não podem ser especificados em buffers que não são legíveis

C6518

Aviso C6518: conflito de anotação: WriteableElementsConst e WriteableBytesConst não podem ser especificada de buffers que não são graváveis

C6521

Aviso C6521: especificação de tamanho inválido: * o operador só pode ser aplicado aos tipos de ponteiro

C6522

Aviso C6522: especificação de tamanho inválido: expressão deve ser do tipo integral

C6523

Aviso C6523: especificação de tamanho inválido: parâmetro <name> não foi encontrado

C6525

Aviso C6525: especificação de tamanho inválido: o valor da propriedade não seja válido

C6526

C6526 - especificação de tamanho inválido de aviso: a expressão deve ser do tipo matriz ou de ponteiro

C6530

Aviso 6530: estilo de seqüência de caracteres de formato não reconhecido <name>

C6535

Aviso C6535: buffer não pode ser de tamanho <n> maior que max(size_t)

Consulte também

Conceitos

Diretrizes para escrever código seguro

Outros recursos

Analisar a qualidade do código C/C++ usando a análise de código