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