Funções intrínsecas
Uma expressão em SAL pode ser expressão c /C criando contanto que é uma expressão que não tenha o lado efeito- por exemplo, criando --, e todas as chamadas de função têm efeitos colaterais neste contexto. No entanto, o SAL fornece qualquer função como os objetos e alguns símbolos reservadas que podem ser usados em expressões de SAL.Esses são referidas como funções intrínsecas.
Uso geral
As anotações a seguir instrinsic de função fornecem o utilitário geral do SAL.
Anotação |
Descrição |
||
---|---|---|---|
_Curr_ |
Um sinônimo para o objeto que está sendo anotado atualmente. Quando a anotação de _At_ estiver em uso, _Curr_ é o mesmo que o primeiro parâmetro para _At_. Caso contrário, será o parâmetro ou a função inteira/valor de retorno com que a anotação é associada léxica. |
||
_Inexpressible_(expr) |
Para expressar uma situação em que o tamanho de um buffer é muito complexa representar usando uma anotação expressão para o exemplo, quando é computado por meio do exame de um conjunto de dados de entrada e depois contando membros selecionados. |
||
_Nullterm_length_(param) |
param é o número de elementos no buffer até mas não incluindo um terminador nulo.Pode ser aplicado a qualquer buffer de não agregação, o tipo não nulo. |
||
_Old_(expr) |
Quando é avaliado na condição anterior, _Old_ retorna o valor de entrada expr. Quando é avaliado na condição pós-instalação, retorna o valor expr porque seria avaliada em pré-requisito. |
||
_Param_(n) |
O º parâmetro de na uma função, contando de 1 a n, e n integral é uma constante literal.Se o parâmetro for, esta anotação é idêntica a acessar o parâmetro por nome.
|
||
return |
A palavra-chave reservada C/C++ return pode ser usado em uma expressão de SAL para indicar o valor de retorno de uma função. O valor está disponível somente no estado da postagem; é um erro de sintaxe para usá-lo pre no estado. |
Específico de cadeia de caracteres
As anotações a seguir da função intrínseca habilitam a manipulação de cadeias de caracteres.Todos os quatro dessas funções oferecem a mesma finalidade: para retornar o número de elementos do tipo que é encontrado antes de um terminador nulo.As diferenças são os tipos de dados em elementos que são referenciados.Observe que se você deseja especificar o comprimento de um buffer com terminação nula que não é composto de caracteres, use a anotação de _Nullterm_length_(param) da seção anterior.
Anotação |
Descrição |
---|---|
_String_length_(param) |
param é o número de elementos na cadeia de caracteres até mas não incluindo um terminador nulo.Essa anotação é reservada para tipos de cadeia de caracteres de caractere. |
strlen(param) |
param é o número de elementos na cadeia de caracteres até mas não incluindo um terminador nulo.Essa anotação é reservada para uso em matrizes de caractere e é semelhante à função strlen ()de tempo de execução C. |
wcslen(param) |
param é o número de elementos na cadeia de caracteres até (mas não incluindo) em um terminador nulo.Essa anotação é reservada para uso em matrizes de caracteres amplas e é semelhante à função wcslen ()de tempo de execução C. |
Consulte também
Referência
Anotando parâmetros de função e valores de retorno
Anotando o comportamento da função
Anotando o comportamento de bloqueio
Especificando quando e onde uma anotação se aplica
Práticas recomendadas e exemplos (SAL)
Conceitos
Outros recursos
Usando anotações de SAL para reduzir defeitos de código do C/C++