Partager via


Structs et classes d'annotation

Vous pouvez annoter la structure et les membres de classe en utilisant des annotations qui agissent comme invariants- ils sont présumés pour être true à un appel de fonction ou fonctionnent l'entrée/sortie qui implique la structure englobante comme paramètre ou une valeur 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.L'équivalent à _Satisfies_(_Curr_ >= low && _Curr_ <= high) s'est appliqué à l'objet annoté en utilisant l'approprié pre ou les états de publication.

_Field_size_(size)

_Field_size_opt_(size)

_Field_size_bytes_(size)

_Field_size_bytes_opt_(size)

Un champ qui a une taille accessible en écriture dans des éléments (ou les 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 qui a une taille accessible en écriture dans des éléments (ou les octets) comme spécifié par size, et count de ces éléments (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 qui a une taille lisible et accessible en écriture dans des éléments (ou les 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 :

typedef _Struct_size_bytes_(nSize)
struct MyStruct {
    size_t nSize;

};
 

La taille de mémoire tampon en octets d'un paramètre pM de type MyStruct * est ensuite prise pour être :

min(pM->nSize, sizeof(MyStruct))

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

Fonctions intrinsèques

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++