Condividi tramite


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