Especificar cuándo y dónde se aplica una anotación

Cuando una anotación es condicional, puede exigir otras anotaciones especificar que el analizador.Por ejemplo, si una función tiene una variable que se puede sincrónica o asincrónica, la función se comporta como sigue: En el caso sincrónico correctamente siempre finalmente, pero en el caso asincrónico notifica un error si no puede tener éxito inmediatamente.Cuando se llama a la función sincrónicamente, comprobar el valor de resultado no proporciona ningún valor al analizador de código porque no habría vuelto.Sin embargo, cuando se llama a la función de forma asincrónica y el resultado de la función no se comprueba, un error grave podría aparecer.Este ejemplo muestra una situación en la que puede utilizar _When_ anotación- descrito más adelante en este artículo- a comprobar de permiso.

Anotaciones estructurales

Para controlar cuándo y donde se aplican las anotaciones, utilice las anotaciones estructurales siguientes.

Anotaciones

Descripción

_At_(expr, anno-list)

expr es una expresión que produce un valor l.Las anotaciones en anno-list se aplican al objeto que llama expr.Para cada anotaciones en anno-list, expr se interpreta en la condición previa si la anotación se interpreta en la condición previa y, en POST- condición si la anotación se interpreta en POST- condición.

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

expr es una expresión que produce un valor l.Las anotaciones en anno-list se aplican al objeto que llama expr.Para cada anotaciones en anno-list, expr se interpreta en la condición previa si la anotación se interpreta en la condición previa y, en POST- condición si la anotación se interpreta en POST- condición.

iter es el nombre de una variable cuyo ámbito a la anotación (incluidos anno-list).iter tiene un tipo implícito long.Las variables con nombres idénticos en cualquier ámbito de inclusión están ocultas a la evaluación.

elem-count es una expresión que se evalúa como un entero.

_Group_(anno-list)

Las anotaciones en anno-list todas se consideran tener cualquier calificador que se aplican a la anotación de grupo que se aplica a cada anotación.

_When_(expr, anno-list)

expr es una expresión que se puede convertir en bool.Cuando es distinto de cero (true), las anotaciones que se especifican en anno-list se consideran aplicable.

De forma predeterminada, para cada anotaciones en anno-list, expr se interpreta como mediante los valores de entrada si la anotación es una condición previa, como mediante los valores de salida si la anotación es una POST- condición.Para reemplazar el valor predeterminado, puede utilizar intrínsecos de _Old_ cuando se evalúa una POST- condición para indicar que los valores de entrada deben usarse.

NotaNota
Varias anotaciones se pueden habilitar como resultado de utilizar _When_ si el siguiente valor mutable para el ejemplo, *pLength— implicado porque el resultado evaluado de expr en la condición previa puede diferir del resultado evaluado en POST- condición.

Vea también

Referencia

Anotar parámetros de función y valores devueltos

Anotar el comportamiento de funciones

Anotar structs y clases

Anotar comportamiento de bloqueo

Funciones intrínsecas

Procedimientos recomendados y ejemplos (SAL)

Conceptos

Introducción a SAL

Otros recursos

Utilizar anotaciones SAL para reducir defectos de código de C/C++