C6388
Обновлен: Ноябрь 2007
C6388
Предупреждение C6388: <аргумент> не может иметь значение <значение>, так как это противоречит спецификации функции <имя функции>, строки x, y.
Это предупреждение означает, что в указанном контексте используется непредвиденное значение. Обычно это предупреждение возникает, когда значения передаются в виде аргументов функции, которая их не ожидает.
Пример
В следующем фрагменте кода C++ возникает такое предупреждение, поскольку функция DoSomething ожидает значение null, но ей может быть передано значение, отличное от null:
#include <string.h>
#include <malloc.h>
#include <codeanalysis\sourceannotations.h>
using namespace vc_attributes;
void DoSomething( [Pre( Null=Yes )] void* pReserved );
void f()
{
void* p = malloc( 10 );
DoSomething( p ); // C6388
// code...
free(p);
}
Чтобы исправить это предупреждение, используйте следующий код:
#include <string.h>
#include <malloc.h>
#include <codeanalysis\sourceannotations.h>
using namespace vc_attributes;
void DoSomething( [Pre( Null=Yes )] void* pReserved );
void f()
{
void* p = malloc( 10 );
if (!p)
{
DoSomething( p );
}
else
{
// code...
free(p);
}
}