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.
Uwaga
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)