Condividi tramite


Annotazioni di struct e classi

È possibile annotare la struttura e i membri della classe utilizzando le annotazioni che operano come invariants- siano vere a qualsiasi chiamata di funzione o funzionano voce/uscita che include la struttura contenitore come parametro o valore.

Annotazioni della classe e di strutture

Annotazione

Descrizione

_Field_range_(low, high)

Il campo si trova nell'intervallo che va da low a high (inclusi).Equivalente a _Satisfies_(_Curr_ >= low && _Curr_ <= high) applicate all'oggetto annotato utilizzando l'oggetto appropriato pre o gli stati inviati.

_Field_size_(size)

_Field_size_opt_(size)

_Field_size_bytes_(size)

_Field_size_bytes_opt_(size)

Un campo con una dimensione non negli elementi o i byte) come specificato da 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 con una dimensione non negli elementi o i byte) come specificato da sizee count degli elementi (byte) che sono leggibili.

_Field_size_full_(size)

_Field_size_full_opt_(size)

_Field_size_bytes_full_(size)

_Field_size_bytes_full_opt_(size)

Un campo che contiene sia dimensione leggibile che modificabile negli elementi o i byte) come specificato da size.

_Struct_size_bytes_(size)

Si applica alle strutture o alle dichiarazioni di classi.Indica che un oggetto valido di tale tipo può essere maggiore del tipo dichiarato, con il numero di byte specificati da size.Ad esempio:

typedef _Struct_size_bytes_(nSize)
struct MyStruct {
    size_t nSize;

};
 

La dimensione in byte del buffer di un parametro pM di tipo MyStruct * è presa da:

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

Vedere anche

Riferimenti

Annotazione di parametri di funzione e valori restituiti

Annotazione del comportamento delle funzioni

Annotazione del comportamento di blocco

Specificare dove e quando applicare un'annotazione

Funzioni intrinseche

Suggerimenti ed esempi (SAL)

Concetti

Informazioni su SAL

Altre risorse

Utilizzo delle annotazioni SAL per ridurre gli errori del codice C/C++