Condividi tramite


C6521

avviso C6521: specifica di dimensione non valida: l'operatore * può essere applicato solo a tipi di puntatore

L'avviso indica un utilizzo non corretto dell'operatore * in una proprietà di annotazione che accetta la dimensione di un parametro come un altro parametro. L'avviso viene generato se il parametro di dimensione è un tipo non puntatore e per rimuovere il riferimento a tale parametro viene utilizzato un operatore *. Tuttavia, se il parametro di dimensione viene passato come tipo puntatore, è possibile utilizzare l'operatore *.

Esempio

Il codice seguente genera questo avviso:

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

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

Per risolvere il problema, eliminare l'operatore * dal valore della proprietà WritableElements oppure passare un puntatore a size_t. Nel codice seguente viene utilizzato size_t *c:

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

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

Vedere anche

Altre risorse

Proprietà di annotazione