Structs et classes d'annotation
Il est possible d'annoter les membres de structure et de classe avec des annotations qui agissent comme des invariants, ils sont présumés vrais lors de tous les appels de fonction ou entrées/sorties de fonction qui impliquent la structure englobante comme valeur de paramètre ou de résultat.
Annotations de structure et de classe
Annotation |
Description |
---|---|
_Field_range_(low, high) |
Le champ est dans la plage (inclusifs) de low à high. Equivalent à _Satisfies_(_Curr_ >= low && _Curr_ <= high) appliqué à l'objet annoté en utilisant la pré/postcondition appropriée. |
_Field_size_(size) _Field_size_opt_(size) _Field_size_bytes_(size) _Field_size_bytes_opt_(size) |
Un champ dont la taille d'écriture en éléments (ou octets) comme spécifié par size. |
_Field_size_part_(size, count) _Field_size_part_opt_(size, count) _Field_size_bytes_part_(size, count) _Field_size_bytes_part_opt_(size, count) |
Un champ dont la taille d'écriture en éléments (ou octets) comme spécifié par size, et count de ces éléments (en octets) qui sont lisibles. |
_Field_size_full_(size) _Field_size_full_opt_(size) _Field_size_bytes_full_(size) _Field_size_bytes_full_opt_(size) |
Un champ dont la taille de lecture et d'écriture en éléments (ou octets) comme spécifié par size. |
_Struct_size_bytes_(size) |
S'applique au struct ou à la déclaration de classe. Indique qu'un objet valide de ce type peut être plus grand que le type déclaré, avec le nombre d'octets spécifié par size. Par exemple :
La taille de mémoire tampon en octets d'un paramètre pM de type MyStruct * est ensuite prise pour être :
|
Voir aussi
Référence
Annotation de paramètres de fonction et valeurs de retour
Annotation du comportement d'une fonction
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++