Funzioni intrinseche
Un'espressione in SAL può essere un'espressione di tipo c /C c++ a condizione che sia un'espressione che non ha lato effetto-, ad esempio c++, --e le chiamate di funzione tutte hanno effetti collaterali in questo contesto.Tuttavia, SAL fornisce alcuni oggetti del tipo di funzione e alcuni simboli privati che possono essere utilizzati nelle espressioni SAL.Esse sono denominate funzioni intrinseche.
Utilizzo generale
Le annotazioni instrinsic di funzione forniscono l'utilità generale per SAL.
Annotazione |
Descrizione |
---|---|
_Curr_ |
Sinonimo dell'oggetto attualmente annotando.Quando la voce di _At_ viene utilizzata, _Curr_ sono gli stessi del primo parametro a _At_.In caso contrario, è il parametro o l'intera funzione/valore restituito dall'annotazione è associata lessicale. |
_Inexpressible_(expr) |
Indica una situazione in cui la dimensione di un buffer è troppo complessa per rappresentare mediante un'annotazione espressione-, ad esempio quando viene calcolata analizzando i dati di input impostati quindi calcola i membri selezionati. |
_Nullterm_length_(param) |
param è il numero di elementi nel buffer fino a un terminatore null, non incluso.Può essere applicato a un qualsiasi buffer che contenga tipi non aggregati e non void. |
_Old_(expr) |
Quando viene valutata nel blocco, _Old_ restituisce il valore di input expr.Quando viene valutata nella prospettiva condizione, restituisce il valore expr come verrebbe stata valutata nel presupposto. |
_Param_(n) |
Il parametro n-esimo di una funzione, contando da 1 a n, e n è una costante integrale letterale.Se il parametro è denominato, questa annotazione ha lo stesso effetto di accedere al parametro per nome.
Nota
n può fare riferimento ai parametri posizionali definiti gli ellissi, o può essere utilizzato in prototipi di funzione in cui i nomi non vengono utilizzati.
|
return |
La parola chiave riservata return di C/C++ può essere utilizzata in un'espressione SAL per indicare il valore restituito di una funzione.Il valore è disponibile solo nello stato inviati; è un errore di sintassi per utilizzarlo pre stato. |
Specifico di una stringa
Le annotazioni di funzione intrinseca consentono la modifica delle stringhe.Le quattro di queste funzioni presentano lo stesso scopo: per restituire il numero di elementi di tipo cercato prima di un terminatore null.Le differenze sono tipi di dati degli elementi che fanno riferimento a.Si noti che se si desidera specificare la lunghezza del buffer con terminazione null non è composto da caratteri, utilizzare l'annotazione di _Nullterm_length_(param) la sezione precedente.
Annotazione |
Descrizione |
---|---|
_String_length_(param) |
param è il numero di elementi nella stringa fino a un terminatore null, non incluso.Questa voce è riservata per i tipi di carattere stringa-di-caratteri. |
strlen(param) |
param è il numero di elementi nella stringa fino a un terminatore null, non incluso.Questa voce è riservata per l'utilizzo sulle matrici di caratteri e è simile alla funzione runtime strlen ()()c. |
wcslen(param) |
param è il numero di elementi nella stringa fino a un terminatore null, non incluso.Questa voce è riservata per l'utilizzo sulle matrici di caratteri estesi e è simile alla funzione runtime wcslen ()()c. |
Vedere anche
Riferimenti
Annotazione di parametri di funzione e valori restituiti
Annotazione del comportamento delle funzioni
Annotazioni di struct e classi
Annotazione del comportamento di blocco
Specificare dove e quando applicare un'annotazione
Concetti
Altre risorse
Utilizzo delle annotazioni SAL per ridurre gli errori del codice C/C++