Поделиться через


C6387

Обновлен: Ноябрь 2007

C6387

Предупреждение C6387: <аргумент> может иметь значение <значение>. Это противоречит спецификации функции <имя функции>, строки x, y.

Это предупреждение возникает, если параметру функции с аннотацией передается непредвиденное значение. Например, такое предупреждение возникнет при передаче возможного значения null параметру с атрибутом [Pre( Null=No )].

Пример

Это предупреждение возникает в следующем коде, поскольку параметр null передается 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
}

Для устранения этого предупреждения используйте следующий код:

#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);
}

См. также

Основные понятия

Общие сведения о заметках

Ссылки

strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l