Anotar structs y clases

Puede anotar el struct y miembros de clase mediante las anotaciones que actúan como invariants- se supone para ser true en cualquier llamada de función o funcionan entrada/salida que implica la estructura que agrega como un parámetro o valor de resultado.

Anotaciones de Struct y Clase

Anotaciones

Descripción

_Field_range_(low, high)

El campo está en el intervalo (incluido) de low a high.El equivalente a _Satisfies_(_Curr_ >= low && _Curr_ <= high) aplicado al objeto anotado mediante el adecuado pre o condiciones de envío.

_Field_size_(size)

_Field_size_opt_(size)

_Field_size_bytes_(size)

_Field_size_bytes_opt_(size)

Un campo que tiene un tamaño programable en elementos (o bytes) según lo especificado por 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 campo que tiene un tamaño programable en elementos (o bytes) según lo especificado por size, y count de esos elementos (bytes) que son legibles.

_Field_size_full_(size)

_Field_size_full_opt_(size)

_Field_size_bytes_full_(size)

_Field_size_bytes_full_opt_(size)

Un campo con tamaño legible y programable en elementos (o bytes) según lo especificado por size.

_Struct_size_bytes_(size)

Se aplica a struct o la declaración de clase.Indica que un objeto válido de ese tipo puede ser mayor que el tipo declarado, con el número de bytes especificados por size.Por ejemplo:

typedef _Struct_size_bytes_(nSize)
struct MyStruct {
    size_t nSize;

};
 

El tamaño del búfer en bytes de un parámetro pM de tipo MyStruct * se supone que es:

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

Vea también

Referencia

Anotar parámetros de función y valores devueltos

Anotar el comportamiento de funciones

Anotar comportamiento de bloqueo

Especificar cuándo y dónde se aplica una anotación

Funciones intrínsecas

Procedimientos recomendados y ejemplos (SAL)

Conceptos

Introducción a SAL

Otros recursos

Utilizar anotaciones SAL para reducir defectos de código de C/C++