Compartilhar via


C28193

aviso C28193: A variável contém um valor que deve ser examinado

Esse aviso indicar que a função de chamada não está verificando o valor da variável especificada, que foi fornecido por uma função.O valor retornado for anotado com a anotação de _Check_return_ , mas a função de chamada não estiver usando o valor ou está substituindo o valor sem examiná-lo.

Esse aviso é semelhante a C6031aviso, mas só são informados quando o código não testa ou não verifica o valor da variável, usando ele em uma comparação.Somente atribua o valor não é considerado um exame suficiente para evitar esse aviso.Ao alias do resultado da função é considerada um suficiente auditoria, mas o resultado próprio deve ser anotado com _Check_return_.

Determinadas funções (como) strlenexistem quase exclusivamente para seu valor de retorno, de modo que ele faz sentido para que tenham a anotação de _Check_return_ .Para essas funções, a ferramenta de análise de código pode relatar este aviso quando o valor de retorno não é usado.Isso geralmente indica que o código estiver incorreto, por exemplo, pode conter código residuais que poderia ser excluído.Entretanto, em algumas poucas instâncias, o valor de retorno não é usado intencionalmente.Mais comum dessas instâncias é onde um comprimento de cadeia de caracteres será retornado mas não realmente usado antes que qualquer outro teste foi feito.Que o outro teste causa um caminho a ser imitam onde o comprimento da cadeia de caracteres não o acaba ser usado.Quando isso ocorre, o código pode estar correto, mas poderá ser ineficiente.

Há duas estratégias primários para tratar desses casos em que o valor de retorno não é usado:

Reorganizar o código de forma que o comprimento da cadeia de caracteres é retornado somente ao longo do caminho onde é necessário.

Use #pragma que a direita para suprimir o aviso--reorganizando se o código, você deveria executar o código muito complexa ou de outra forma menos úteis.

Exemplo

O exemplo de código gerenciado esse aviso:

IoGetDmaAdapter(pPDO, &DevDesc, &nMapRegs);
...

O exemplo de código a seguir evita esse aviso:

IoGetDmaAdapter(pPDO, &DevDesc, &nMapRegs);
...
if (nMapRegs < MIN_REQUIRED_MAPS) {
...
}