Udostępnij za pośrednictwem


Dodawanie adnotacji struktur i klas

Dodawanie adnotacji członków struct i klasy za pomocą adnotacji, które działają jak niezmienny — są one uznane za spełniony w każdym wywołaniu funkcji lub funkcji wejścia/wyjścia, który obejmuje strukturę otaczający jako parametr lub wartość wyniku.

Adnotacje struktur i klas

Adnotacja

Opis

_Field_range_(low, high)

Pole jest w zasięgu od low do high włącznie. Równoważne z _Satisfies_(_Curr_ >= low && _Curr_ <= high) stosowany do adnotacjami obiektu przy użyciu odpowiednich warunkach pre lub post.

_Field_size_(size)

_Field_size_opt_(size)

_Field_size_bytes_(size)

_Field_size_bytes_opt_(size)

Pole, które ma rozmiar zapisywalny w elementy (lub liczbę bajtów) jako określony przez 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)

Pole, które ma rozmiar zapisywalny w elementy (lub liczbę bajtów) jako określony przez sizei count z elementów, które można odczytać (w bajtach).

_Field_size_full_(size)

_Field_size_full_opt_(size)

_Field_size_bytes_full_(size)

_Field_size_bytes_full_opt_(size)

Pole, które ma rozmiar zarówno czytelny i zapisywalny w elementy (lub liczbę bajtów) jako określony przez size.

_Struct_size_bytes_(size)

Dotyczy deklaracji struct lub class. Wskazuje, że prawidłowy obiekt tego typu może być większy od deklarowanego typu o liczbie bajtów jest określona przez size. Na przykład:

typedef _Struct_size_bytes_(nSize)
struct MyStruct {
    size_t nSize;

};
 

Rozmiar buforu w bajtach z parametru pM typu MyStruct * następnie przyjmuje:

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

Zobacz też

Informacje

Dodawanie adnotacji do parametrów funkcji i zwracanych wartości

Zachowanie funkcji dodawania adnotacji

Dodawanie adnotacji do zachowania blokującego

Określanie warunków pojawiania się adnotacji

Funkcje wewnętrzne

Najlepsze praktyki i przykłady (SAL)

Koncepcje

Poznanie SAL

Inne zasoby

Korzystanie z adnotacji SAL w celu redukowanie defektów kodu C/C++