Udostępnij za pośrednictwem


Funkcje wewnętrzne

Wyrażenie w SAL może być wyrażeniem C/C++, pod warunkiem, że jest to wyraz, który nie ma skutków ubocznych — na przykład ++,--, a wywołania funkcji wszystkie skutki uboczne w tym kontekście.SAL zapewnia jednak kilka przedmiotów podobnych do funkcji i niektóre symbole zastrzeżone, które mogą być używane w wyrażeniach SAL.Są one określone jako Funkcje.

Ogólnego zastosowania

Następujące adnotacje funkcja instrinsic przewidują ogólne narzędzie SAL.

Adnotacja

Opis

_Curr_

Synonim dla obiektu, który jest aktualnie odnotowany.Gdy _At_ adnotacji jest w użyciu, _Curr_ jest taka sama jak pierwszego parametru do _At_.W przeciwnym razie to parametr lub wartość całego i z powrotem funkcji, z którą skojarzono się leksykalnie adnotację.

_Inexpressible_(expr)

Wyraża sytuacji, gdy rozmiar buforu jest zbyt skomplikowane do przedstawienia przy użyciu wyrażenia adnotacji — na przykład, kiedy jest ona obliczana przez skanowanie zestaw danych wejściowych i następnie liczenia wybrane elementy członkowskie.

_Nullterm_length_(param)

paramto liczba elementów w buforze do, ale nie w tym znakiem null.Można go stosować do buforu, wszelkie tego typu nie-wartość zagregowana, innych niż void.

_Old_(expr)

Gdy zostanie ona potraktowana w warunku wstępnego, _Old_ zwraca wartość wejściowa expr.Gdy zostanie ona potraktowana w post-condition, zwracana jest wartość expr jak to będzie zostały ocenione w warunku wstępnego.

_Param_(n)

nTh parametr do funkcji, licząc od 1 do n, i n jest stałą integralną literału.Jeśli parametr ma nazwę, tej adnotacji jest identyczny do uzyskiwania dostępu do parametru według nazwy.

UwagaUwaga
nodnosi się do parametrów pozycyjne, które są definiowane przez wielokropek lub mogą być stosowane w prototypy tych funkcji gdzie nazwy nie są używane.

return

C/C++ zarezerwowane słowo kluczowe return umożliwia w wyrażeniu SAL wskazują wartość zwracana funkcji.Wartość jest dostępna tylko w Państwie post; jest to błąd składni z niego korzystać w stanie sprzed.

String, szczególne

Następujące adnotacje wewnętrzna funkcja włączyć manipulowania ciągami znaków.Wszystkie cztery funkcje te służą temu samemu celowi: do zwracania liczby elementów tego typu, który znajduje się przed znakiem null.Różnice są typami danych w elementach, które są określone.Należy zauważyć, że jeśli chcesz określić długość zakończony wartością zerową buforu, który nie składa się znaków, należy użyć _Nullterm_length_(param) adnotacji z poprzedniej sekcji.

Adnotacja

Opis

_String_length_(param)

paramto liczba elementów w ciągu maksymalnie, ale nie w tym znakiem null.Ta adnotacja jest zarezerwowana dla typów ciąg znaków.

strlen(param)

paramto liczba elementów w ciągu maksymalnie, ale nie w tym znakiem null.Ta adnotacja jest zarezerwowany do użytku na znak tablic i jest podobna do funkcji środowiska wykonawczego języka C strlen ().

wcslen(param)

paramjest to liczba elementów w ciągu maksymalnie (ale z wyłączeniem) znakiem null.Ta adnotacja jest zarezerwowany do użycia na znak dwubajtowy tablic i jest podobna do funkcji środowiska wykonawczego języka C wcslen().

Zobacz też

Informacje

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

Zachowanie funkcji dodawania adnotacji

Dodawanie adnotacji struktur i klas

Dodawanie adnotacji do zachowania blokującego

Określanie warunków pojawiania się adnotacji

Najlepsze praktyki i przykłady (SAL)

Koncepcje

Zrozumienie SAL

Inne zasoby

Za pomocą adnotacji SAL do zmniejszenia wady kod C/C++