Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A variável contém um valor que deve ser examinado
Esse aviso indica que a função de chamada não está verificando o valor da variável especificada, que foi fornecida por uma função. O valor retornado recebe a anotação _Check_return_, mas a função de chamada não está usando o valor ou está substituindo o valor sem examiná-lo.
Esse aviso é semelhante ao aviso C6031, mas é relatado somente quando o código não testa ou examina o valor da variável, por exemplo, usando-o em uma comparação. A simples atribuição do valor não é considerada um exame suficiente para evitar esse aviso. O alias do resultado da função é considerado um exame suficiente, mas o resultado em si deve ser anotado com _Check_return_.
Determinadas funções (como strlen) existem quase exclusivamente para os respectivos valores retornados, portanto, faz sentido que elas tenham a anotação _Check_return_. Nessas funções, a ferramenta Code Analysis poderá relatar esse aviso quando o valor retornado não for usado. Esse aviso geralmente indica que o código está incorreto, por exemplo, pode conter código residual que pode ser excluído. No entanto, em algumas raras ocasiões, o valor retornado não é usado intencionalmente. A mais comum dessas ocasiões é quando um comprimento de cadeia de caracteres é retornado, mas não é realmente usado antes que algum outro teste seja feito. Esse outro teste faz com que um caminho seja simulado, em que o comprimento da cadeia de caracteres acaba não sendo utilizado. Quando isso acontece, o código pode estar correto, mas talvez seja ineficiente.
Há duas estratégias principais para lidar com esses casos em que o valor retornado não é usado:
Reordene o código para que o comprimento da cadeia de caracteres seja retornado apenas ao longo do caminho em que é necessário.
Use um aviso #pragma para suprimir o aviso, caso o código se torne muito complexo ou menos útil ao ser reordenado.
Exemplo
O código a seguir gera esse aviso:
IoGetDmaAdapter(pPDO, &DevDesc, &nMapRegs);
//...
O seguinte exemplo de código evita esse aviso:
IoGetDmaAdapter(pPDO, &DevDesc, &nMapRegs);
//...
if (nMapRegs < MIN_REQUIRED_MAPS) {
//...
}