Fonctions intrinsèques
Une expression dans le SAL peut être expression C/C++ /C C/C++ à condition que ce soit une expression qui n'a pas le côté effet- pour l'exemple, c++, --, et les appels de fonction tous avoir des effets secondaires dans ce contexte.Toutefois, le SAL fournit des objets comme une fonction et des symboles réservés qui peuvent être utilisés dans les expressions SAL.Celles-ci sont appelés fonctions intrinsèques.
Utilisation universel
Les annotations instrinsic suivantes de fonction fournissent l'utilitaire général pour le SAL.
Annotation |
Description |
---|---|
_Curr_ |
Un synonyme de l'objet actuellement est annoté.Lorsque l'annotation d' _At_ est en cours de utilisation, _Curr_ est identique à le premier paramètre à _At_.Sinon, il s'agit du paramètre ou la fonction entière/valeur de retour avec laquelle l'annotation est lexicale associée. |
_Inexpressible_(expr) |
Exprime une situation où la taille d'une mémoire tampon est trop complexe pour représenter à l'aide d'une annotation expression- pour l'exemple, lorsqu'elle est calculée en balayant un jeu de données d'entrée puis en comptant les membres sélectionnés. |
_Nullterm_length_(param) |
param est le nombre d'éléments dans la mémoire tampon jusqu'à la limite d'une marque de fin null.Elle peut s'appliquer à toute mémoire tampon non agrégat, type non void. |
_Old_(expr) |
Lorsqu'elle est évaluée dans la condition préalable, _Old_ retourne la valeur d'entrée expr.Lorsqu'elle est évaluée dans la condition après, elle retourne la valeur expr comme il aurait été évaluée dans la condition préalable. |
_Param_(n) |
Le paramètre de Th d' nà une fonction, comptant entre 1 et n, et n est une constante intégrale littérale.Si le paramètre est nommé, cette annotation identique à accéder au paramètre de nom.
Remarque
n peut faire référence aux paramètres positionnels définis par des points de suspension, ou peut être utilisé dans des prototypes de fonction où les noms ne sont pas utilisés.
|
return |
Le mot clé réservé return C/C++ peut être utilisé dans une expression SAL pour indiquer la valeur de retour d'une fonction.La valeur est uniquement disponible dans l'état de publication ; il s'agit d'une erreur de syntaxe à utiliser dans pre l'état. |
Détails de chaîne
Les annotations suivantes de fonction intrinsèque permettent de manipuler des chaînes.Les quatre de ces fonctions atteint le même objectif : pour retourner le nombre d'éléments du type qui est trouvée avant une marque de fin null.Les différences sont les types de données des éléments qui sont mentionnés.Notez que si vous souhaitez spécifier la longueur d'une mémoire tampon se terminant par null qui n'est pas composée de caractères, utilisez l'annotation d' _Nullterm_length_(param) de la section précédente.
Annotation |
Description |
---|---|
_String_length_(param) |
param est le nombre d'éléments dans la chaine jusqu'à la limite d'une marque de fin null.Cette annotation est réservée pour les types de chaîne-de- caractère. |
strlen(param) |
param est le nombre d'éléments dans la chaine jusqu'à la limite d'une marque de fin null.Cette annotation est réservée pour une utilisation sur les tableaux de caractères et ressemble à la fonction d'exécution strlen()C. |
wcslen(param) |
param est le nombre d'éléments dans la chaine jusqu'à la limite (mais sans l'inclure) d'une marque de fin null.Cette annotation est réservée pour une utilisation sur les jeux de caractères larges et ressemble à la fonction d'exécution wcslen()C. |
Voir aussi
Référence
Annotation de paramètres de fonction et valeurs de retour
Annotation du comportement d'une fonction
Structs et classes d'annotation
Annotation du comportement de verrouillage
Spécification du moment où une annotation est applicable et dans quel cas
Meilleures pratiques et exemples (SAL)
Concepts
Autres ressources
Utilisation d'annotations SAL pour réduire les défauts du code C/C++