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


C6535

Предупреждение C6535: буфер не может иметь размер <n>, превышающий размер max(size_t).

Это предупреждение означает, что размер буфера не может превышать size_t. Тип size_t определен как целое число без знака, его фактический размер зависит от системы.

Пример

Это предупреждение создается в следующем примере кода, поскольку __int64 используется для ValidBytes, где допустим только тип size_t:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(ValidBytes="c")] char *pc, __int64 c);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(ValidBytes="c")] char *pc, __int64 c);

Чтобы исправить это предупреждение, используйте правильный тип данных для размера, как показано в следующем примере кода:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(ValidBytes="c")] char *pc, size_t c);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(ValidBytes="c")] char *pc, size_t c);

Свойство ValidBytes нельзя применить к указателю функции.