Compartilhar via


C6522

Aviso C6522: especificação de dimensionar inválido: a expressão deve ser do tipo integral

Este aviso indica que tipo integral é esperado, mas um tipo de dados incorreto foi usado.Você pode usar as propriedades da anotação que aceitam o dimensionar de um parâmetro em termos de outro parâmetro, mas você deve usar o tipo de dados correto.Para obter uma lista de propriedades de anotação, consulte Propriedades de anotação.

Exemplo

O código a seguir gera este aviso:

// 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 corrigir esse aviso, use size_t para o ValidBytesParam tipo de dados do parâmetro, sistema autônomo mostra o código de exemplo a seguir:

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