Advertencia C6522

Especificación de tamaño no válida: la expresión debe ser de tipo entero: anotación 'anotación' en la función 'function' 'parameter'

Nota:

Esta advertencia solo se produce en el código que usa una versión en desuso del lenguaje de anotación de código fuente (SAL). Se recomienda realizar la portabilidad del código para usar la versión más reciente de SAL. Para más información, consulte Uso de anotaciones SAL para reducir los defectos en el código de C/C++.

Comentarios

Esta advertencia indica que se esperaba un tipo entero, pero se usó un tipo de datos incorrecto. Puede usar propiedades de anotación que acepten el tamaño de un parámetro en términos de otro parámetro, pero debe usar el tipo de datos correcto. Para obtener una lista de las propiedades de anotación, vea Uso de anotaciones SAL para reducir los defectos de código.

Nombre del análisis de código: INVALID_SIZE_STRING_TYPE

Ejemplo

El código siguiente genera esta advertencia:

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

Para corregir esta advertencia, use size_t para el tipo de datos del parámetro ValidBytesParam, tal como se muestra en el código de ejemplo siguiente:

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