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.
Nota
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
Concetti
Altre risorse
Utilizzo delle annotazioni SAL per ridurre gli errori del codice C/C++