Partager via


Avertissement C6522

Spécification de taille non valide : l’expression doit être de type intégral : annotation 'annotation' sur la fonction 'function' 'parameter'

Remarque

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

Notes

Cet avertissement indique qu’un type intégral était attendu, mais qu’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 en termes d’un autre paramètre, mais vous devez utiliser un type de données correct. Pour obtenir la liste des propriétés d’annotation, consultez Utilisation des annotations SAL pour réduire les défauts de code.

Nom de l’analyse du code : INVALID_SIZE_STRING_TYPE

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-le size_t pour le ValidBytesParam type de données de paramètre, comme indiqué dans l’exemple de 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);