Partager via


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.

RemarqueRemarque
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

Présentation de SAL

Autres ressources

Utilisation d'annotations SAL pour réduire les défauts du code C/C++