Condividi tramite


Specificare dove e quando applicare un'annotazione

Quando una voce è condizionale, può richiedere altre annotazioni di specificare taleanalizzatore.Ad esempio, se una funzione dispone di una variabile che può essere sincrona o asincrona, la funzione si comporta come segue: Nel caso sincrono verrà sempre esito positivo, ma in modo asincrono viene segnalato un errore se non può essere immediatamente.Quando la funzione viene chiamata in modo sincrono, controllare il valore non fornisce valore dell'analizzatore di codice perché non avrà restituito.Tuttavia, quando la funzione viene chiamata in modo asincrono e il risultato della funzione non è selezionata, un errore grave può verificarsi.In questo esempio viene illustrata una situazione in cui è possibile utilizzare _When_ annotazione- descritto più avanti in questo articolo- abilitate controllare.

Annotazioni strutturali

Per controllare quando e dove le annotazioni vengono applicate, attenersi alle annotazioni strutturali.

Annotazione

Descrizione

_At_(expr, anno-list)

expr è un'espressione che restituisce un valore.Le annotazioni in anno-list si applicano all'oggetto denominato da expr.Per ciascuna voce in anno-list, expr viene interpretato in presuppone se la voce viene interpretata nel blocco e la prospettiva condizione se la voce viene interpretata nella prospettiva condizione.

_At_buffer_(expr, iter, elem-count, anno-list)

expr è un'espressione che restituisce un valore.Le annotazioni in anno-list si applicano all'oggetto denominato da expr.Per ciascuna voce in anno-list, expr viene interpretato in presuppone se la voce viene interpretata nel blocco e la prospettiva condizione se la voce viene interpretata nella prospettiva condizione.

iter è il nome di una variabile limitata all'annotazione (incluso anno-list).iter ha un tipo implicito long.Le variabili denominate identicamente, in qualsiasi ambito che lo contiene, sono nascoste dalla valutazione.

elem-count è un'espressione che restituisce un Integer.

_Group_(anno-list)

Le annotazioni in anno-list tutte si disponga del qualificatore applicato annotazione del gruppo applicato a ogni voce.

_When_(expr, anno-list)

expr è un'espressione che può essere convertita in bool.Quando è diversa da zero (true), le annotazioni specificate in anno-list sono considerate applicabile.

Per impostazione predefinita, per ciascuna voce in anno-list, expr viene interpretato come utilizzando i valori di input se la voce è una precondizione e come utilizzando i valori di output se la voce è una prospettiva condizione.Per eseguire l'override dell'impostazione predefinita, è possibile utilizzare l'intrinseco di _Old_ la valutazione di una prospettiva condizione per indicare che i valori immessi devono essere utilizzati.

NotaNota
Le annotazioni diversi potrebbero essere abilitate in conseguenza di l _When_ se un modificabile valori, ad esempio *pLength— è implicito poiché il risultato restituito di expr nel blocco può differire dal risultato restituito nella prospettiva condizione.

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

Funzioni intrinseche

Suggerimenti ed esempi (SAL)

Concetti

Informazioni su SAL

Altre risorse

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