Funciones intrínsecas

Una expresión en SAL puede ser expresión de C/C++. /C ++ siempre que es una expresión que no tiene el efecto- para el ejemplo, ++, --, y las llamadas de función todas tienen efectos secundarios en este contexto.Sin embargo, SAL proporciona algunos objetos de tipo función y algunos símbolos reservados que se pueden utilizar en expresiones SAL.Estos se conocen como funciones intrínsecas.

Uso general

Las anotaciones instrinsic siguientes de la función proporcionan la utilidad general para SAL.

Anotaciones

Descripción

_Curr_

Un sinónimo para el objeto que se está anotando actualmente.Cuando la anotación de _At_ está en uso, _Curr_ es igual que el primer parámetro a _At_.Si no, es el parámetro o toda la función y el valor devuelto al que la anotación se asocia léxico.

_Inexpressible_(expr)

Expresa un escenario donde es demasiado complejo el tamaño de un búfer representar usando una anotación expresión- para el ejemplo, cuando se calcula la exploración de los datos de entrada establecido y después contando miembros seleccionados.

_Nullterm_length_(param)

param es el número de elementos del búfer hasta el terminador nulo, pero sin incluirlo.Puede aplicarse a cualquier búfer de tipo no agregado, de tipo no vacío.

_Old_(expr)

Cuando se evalúa en la condición previa, _Old_ devuelve el valor expr de entrada.Cuando se evalúa en POST- condición, devuelve el valor expr como habría evalúa en la condición previa.

_Param_(n)

El parámetro n-ésimo de una función, contando desde 1 a n, y n es una constante entera literal.Si el parámetro es nombrado, esta anotación es idéntica a obtener acceso al parámetro por nombre.

NotaNota
n puede hacer referencia a los parámetros posicionales definidos por puntos suspensivos, o se puede utilizar en los prototipos de función donde los nombres no se utilizan.

return

La palabra clave reservada return de C/C++ se puede usar en una expresión SAL para indicar el valor devuelto por una función.El valor sólo está disponible en estado de envío; es un error de sintaxis para utilizarlo en pre estado.

Específico de la cadena

Las anotaciones siguientes de la función intrínseca habilitan la manipulación de cadenas.Los cuatro de estas funciones tienen el mismo resultado: para devolver el número de elementos del tipo que se encuentra antes de un carácter null final.Las diferencias son clases de datos en los elementos se conocen que.Observe que si desea especificar la longitud de un búfer terminado en null que no se compone de caracteres, utilice la anotación de _Nullterm_length_(param) de la sección anterior.

Anotaciones

Descripción

_String_length_(param)

param es el número de elementos en la cadena hasta el terminador nulo, pero sin incluirlo.Esta anotación se reserva para los tipos de cadena de carácter.

strlen(param)

param es el número de elementos en la cadena hasta el terminador nulo, pero sin incluirlo.Esta anotación se reserva para el uso en matrices de caracteres y es similar a la función strlen ()()en tiempo de ejecución de C.

wcslen(param)

param es el número de elementos en la cadena hasta un terminador nulo (pero sin incluirlo).Esta anotación se reserva para su uso en las matrices de caracteres anchos y es similar a la función wcslen ()()en tiempo de ejecución de C.

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

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

Procedimientos recomendados y ejemplos (SAL)

Conceptos

Introducción a SAL

Otros recursos

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