C6522
avviso C6522: specifica di dimensione non valida: l'espressione deve essere di tipo integrale
L'avviso indica che era previsto un tipo integrale ma è stato utilizzato un tipo di dati non corretto. È possibile utilizzare le proprietà di annotazione che accettano la dimensione di un parametro come se fosse un altro parametro, ma è necessario utilizzare il tipo di dati corretto. Per un elenco di proprietà di annotazione, vedere Proprietà di annotazione.
Esempio
Il codice seguente genera questo avviso:
// 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);
Per risolvere il problema, utilizzare size_t per il tipo di dati del parametro ValidBytesParam, come illustrato nell'esempio di codice seguente:
// 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);