Compartilhar via


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.

ObservaçãoObservação

n pode consultar os parâmetros posicionais que são definidos pelas reticências, ou pode ser usado em protótipos de função em que os nomes não são usados.

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 estruturas e classes

Anotando o comportamento de bloqueio

Especificando quando e onde uma anotação se aplica

Práticas recomendadas e exemplos (SAL)

Conceitos

Noções básicas de SAL

Outros recursos

Usando anotações de SAL para reduzir defeitos de código do C/C++