Condividi tramite


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.

NotaNota
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

Suggerimenti ed esempi (SAL)

Concetti

Informazioni su SAL

Altre risorse

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