Partager via


C6522

avertissement C6522 : spécification de taille non valide : l'expression doit être de type intégral

[!REMARQUE]

Cet avertissement se produit uniquement dans le code qui utilise une version déconseillée linguistiques d'annotation du code source (SAL).Nous vous recommandons de porter votre code pour utiliser la version la plus récente du SAL.Pour plus d'informations, consultez Utilisation d'annotations SAL pour réduire les défauts du code C/C++.

Cet avertissement indique qu'un type intégral était attendu, mais un type de données incorrect a été utilisé.Vous pouvez utiliser des propriétés d'annotation qui acceptent la taille d'un paramètre pour un autre paramètre, mais vous devez utiliser le type de données correct.Pour obtenir la liste des propriétés d'annotation, consultez Propriétés d'annotation.

Exemple

Le code suivant génère cet avertissement :

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

Pour corriger cet avertissement, utilisez size_t pour le type de données du paramètre ValidBytesParam, comme indiqué dans le code suivant :

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