Предупреждение C6522

Недопустимая спецификация размера: выражение должно быть целочисленным типом: заметка "заметка" функции "function" "parameter"

Примечание.

Это предупреждение возникает только в коде, используюющем устаревшую версию языка заметок исходного кода (SAL). Рекомендуется перенести код для использования последней версии SAL. Дополнительные сведения см. в статье "Использование заметок SAL для уменьшения дефектов кода C/C++".

Замечания

Это предупреждение указывает, что ожидался целый тип, но использовался неверный тип данных. Вы можете использовать свойства заметки, которые принимают размер параметра с точки зрения другого параметра, но необходимо использовать правильный тип данных. Список свойств заметки см. в разделе "Использование заметок SAL" для уменьшения дефектов кода.

Имя анализа кода: INVALID_SIZE_STRING_TYPE

Пример

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

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

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

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

// 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);