Structs et classes d’annotationAnnotating Structs and Classes

Vous pouvez annoter les membres de struct et class à l’aide des annotations qui agissent comme des invariants, elles sont supposées avoir la valeur true à n’importe quel appel de fonction ou d’une entrée/sortie de la fonction qui implique la structure englobante comme paramètre ou une valeur de résultat.You can annotate struct and class members by using annotations that act like invariants—they are presumed to be true at any function call or function entry/exit that involves the enclosing structure as a parameter or a result value.

Les Annotations de classe et de structStruct and Class Annotations

  • _Field_range_(low, high)

    Le champ est en cours de la plage (incluse) à partir de low à high.The field is in the range (inclusive) from low to high. Équivalent à _Satisfies_(_Curr_ >= low && _Curr_ <= high) appliqué à l’objet annoté en utilisant les conditions pre ou post.Equivalent to _Satisfies_(_Curr_ >= low && _Curr_ <= high) applied to the annotated object by using the appropriate pre or post conditions.

  • _Field_size_(size), _Field_size_opt_(size), _Field_size_bytes_(size), _Field_size_bytes_opt_(size)_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 les éléments (ou octets) comme spécifié par size.A field that has a writable size in elements (or bytes) as specified by 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)_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 les éléments (ou octets) comme spécifié par sizeet le count de ces éléments (octets) qui peuvent être lus.A field that has a writable size in elements (or bytes) as specified by size, and the count of those elements (bytes) that are readable.

  • _Field_size_full_(size), _Field_size_full_opt_(size), _Field_size_bytes_full_(size), _Field_size_bytes_full_opt_(size)_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 accessible en lecture et en écriture dans les éléments (ou octets) comme spécifié par size.A field that has both readable and writable size in elements (or bytes) as specified by size.

  • _Struct_size_bytes_(size)

    Un champ qui a une taille accessible en lecture et en écriture dans les éléments (ou octets) comme spécifié par size.A field that has both readable and writable size in elements (or bytes) as specified by size.

    S’applique à la déclaration de classe ou de struct.Applies to struct or class declaration. Indique qu’un objet valide de ce type peut être plus grand que le type déclaré, le nombre d’octets qui est spécifié par size.Indicates that a valid object of that type may be larger than the declared type, with the number of bytes being specified by size. Par exemple :For example:

    
    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 dirigé vers l’être :The buffer size in bytes of a parameter pM of type MyStruct * is then taken to be:

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

Voir aussiSee Also

Utilisation d’Annotations SAL pour réduire les défauts du Code C/C++ présentation de SAL annotation de paramètres de fonction et valeurs de retour annotation du comportement de la fonction Annotation du comportement de verrouillage spécifiant le moment où une Annotation est applicable et des fonctions intrinsèques meilleures pratiques et ExemplesUsing SAL Annotations to Reduce C/C++ Code Defects Understanding SAL Annotating Function Parameters and Return Values Annotating Function Behavior Annotating Locking Behavior Specifying When and Where an Annotation Applies Intrinsic Functions Best Practices and Examples