Condividi tramite


Avviso C6522

Specifica delle dimensioni non valida: expression deve essere di tipo integrale: annotazione 'annotation' nella funzione 'function' 'parameter'

Nota

Questo avviso si verifica solo nel codice che usa una versione deprecata del linguaggio di annotazione del codice sorgente (SAL). È consigliabile convertire il codice per usare la versione più recente di SAL. Per altre informazioni, vedere Uso delle annotazioni SAL per ridurre i difetti del codice C/C++.

Osservazioni:

Questo avviso indica che è stato previsto un tipo integrale, ma è stato usato un tipo di dati non corretto. È possibile usare proprietà di annotazione che accettano le dimensioni di un parametro in termini di un altro parametro, ma è necessario usare il tipo di dati corretto. Per un elenco delle proprietà di annotazione, vedere Uso delle annotazioni SAL per ridurre i difetti del codice.

Nome dell'analisi del codice: INVALID_SIZE_STRING_TYPE

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 correggere questo avviso, usare size_t per il tipo di dati del ValidBytesParam parametro, come illustrato nel codice di esempio 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);