C6387
Aviso C6387: <argument> pode ser <value>: Isso não adere à especificação para a função < nome da função >: Linhas: x, y
Esse aviso é gerado se um parâmetro de função anotadas está sendo passado como um valor inesperado. Por exemplo, passar um valor nulo potencialmente a um parâmetro está marcado com [Pre (nulo = não)] atributo gera esse aviso.
Exemplo
O código a seguir gera este aviso porque um parâmetro null é passado para f(char *):
#include <codeanalysis/sourceannotations.h>
using namespace vc_attributes;
[returnvalue:Post(Null=Yes)] char * g();
void f([Pre (Null=No)] char *pch);
void main()
{
char *pCh=g();
f(pCh); //C6387
}
Para corrigir esse aviso, use o seguinte código:
#include <codeanalysis/sourceannotations.h>
using namespace vc_attributes;
[returnvalue:Post(Null=No)] char * g();
void f([Pre (Null=No)] char *pch);
void main()
{
char *pCh=g();
f(pCh);
}
Consulte também
Referência
strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l