Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Una expresión en SAL puede ser una expresión de C/C++ siempre que sea una expresión que no tenga efectos secundarios; por ejemplo, ++, --, y llamadas de función tienen efectos secundarios en este contexto. Sin embargo, SAL proporciona algunos objetos similares a funciones y algunos símbolos reservados que se pueden usar en expresiones SAL. Estos se conocen como funciones intrínsecas.
Uso general
Las siguientes anotaciones de función instrínseca proporcionan utilidad general para SAL.
Anotación | Descripción |
---|---|
_Curr_ |
Sinónimo del objeto que se anota actualmente. Cuando la anotación _At_ está en uso, _Curr_ es igual que el primer parámetro para _At_ . De lo contrario, es el parámetro o la función entera/valor devuelto con los que la anotación está asociada léxicamente. |
_Inexpressible_(expr) |
Expresa una situación en la que el tamaño de un búfer es demasiado complejo para representar mediante una expresión de anotación; por ejemplo, cuando se calcula mediante el examen de un conjunto de datos de entrada y, luego, se cuentan los miembros seleccionados. |
_Nullterm_length_(param) |
param es el número de elementos del búfer hasta un terminador NULL (sin incluir este). Se puede aplicar a cualquier búfer de tipo no agregado y no nulo. |
_Old_(expr) |
Cuando se evalúa en condición previa, _Old_ devuelve el valor de entrada expr . Cuando se evalúa en condición previa, devuelve el valor expr como se habría evaluado en la condición previa. |
_Param_(n) |
El parámetro n th a una función, contando desde 1 hasta n , y n es una constante integral literal. Si se nombra el parámetro, esta anotación es idéntica a acceder al parámetro por nombre.
Nota:n pueden hacer referencia a los parámetros posicionales definidos por puntos suspensivos o se pueden usar en prototipos de función donde no se usan nombres. |
return |
La palabra clave reservada de C/C++ return se puede usar en una expresión SAL para indicar el valor devuelto de una función. El valor solo está disponible en estado posterior; es un error de sintaxis usarlo en estado previo. |
Cadena específica
Las siguientes anotaciones de función intrínseca permiten la manipulación de cadenas. Estas cuatro funciones tienen el mismo propósito: devolver el número de elementos del tipo que se encuentra delante de un terminador NULL. Las diferencias son los tipos de datos de los elementos a los que se hace referencia. Tenga en cuenta que si quiere especificar la longitud de un búfer terminado en NULL que no esté compuesto de caracteres, debe usar la anotación _Nullterm_length_(param)
de la sección anterior.
Anotación | Descripción |
---|---|
_String_length_(param) |
param es el número de elementos de la cadena hasta un terminador NULL (sin incluir este). Esta anotación está reservada para tipos de cadena de caracteres. |
strlen(param) |
param es el número de elementos de la cadena hasta un terminador NULL (sin incluir este). Esta anotación está reservada para su uso en matrices de caracteres y es similar a la función strlen() del entorno de ejecución de C. |
wcslen(param) |
param es el número de elementos de la cadena hasta un terminador NULL (sin incluir este). Esta anotación está reservada para su uso en matrices de caracteres anchos y recuerda a la función en tiempo de ejecución de C wcslen(). |
Consulte también
- Uso de anotaciones SAL para reducir defectos de código de C/C++
- Introducción a SAL
- 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