Funções intrínsecas
Uma expressão no SAL pode ser expressão de energia AC /C ++ desde que é uma expressão que não tenha o lado efeito- para o, exemplo, ++ --, e as chamadas de função têm todas efeitos colaterais neste contexto.No entanto, o SAL fornece algum função como os objetos e alguns símbolos reservados que podem ser usados em expressões de SAL.Esses são chamados funções intrínsecas.
Uso geral
As seguintes instrinsic anotações de função fornecem o utilitário geral para o SAL.
Anotação |
Descrição |
---|---|
_Curr_ |
Um sinónimo para o objeto sendo anotado no momento.Quando a anotação de _At_ está em uso, _Curr_ é o mesmo que o primeiro parâmetro a _At_.Caso contrário, é o parâmetro ou função inteira/valor de retorno com que a anotação é associada lexicalmente. |
_Inexpressible_(expr) |
Express uma situação onde o tamanho de um buffer é muito complexo personificar usando uma anotação expressão- por exemplo, quando é calculado digitalizando um conjunto de dados de entrada e então contando membros selecionados. |
_Nullterm_length_(param) |
param é o número de elementos em buffer até incluindo um terminador mas não nulo.Pode ser aplicada a qualquer buffer de agregação, não tipo não vago. |
_Old_(expr) |
Quando é avaliado na condição anterior, _Old_ retorna o valor exprde entrada.Quando é avaliado em pré condição, retorna o valor expr porque será avaliada na condição anterior. |
_Param_(n) |
O parâmetro de th de na uma função, contando de 1 a n, e n são uma constante integral literal.Se o parâmetro é chamado, a anotação é idêntica a acessar o parâmetro pelo nome.
Observação
n pode referenciar parâmetros posicionais que são definidos por uma elipse, ou pode ser usado em protótipos de função onde os nomes não são usados.
|
return |
A palavra-chave reservado C/C++ return pode ser usado em uma expressão de SAL para indicar o valor de retorno de uma função.O valor só está disponível no estado de postagem; é um erro de sintaxe para usá-lo pre no estado. |
Específico de cadeia de caracteres
As seguintes anotações de função intrínseca possibilitam manipulação de cadeias de caracteres.Todos os quatro dessas funções servem a mesma finalidade: para retornar o número de elementos do tipo que é encontrado antes de zero. um terminadorAs diferenças são os tipos de dados em elementos que são referenciados.Observe que se você desejar especificar o tamanho de um buffer NULL- encerrado que não é composto de caracteres, use a anotação de _Nullterm_length_(param) a seção anterior.
Anotação |
Descrição |
---|---|
_String_length_(param) |
param é o número de elementos na cadeia de caracteres até incluindo um terminador mas não nulo.Esta anotação é permitida para tipos de cadeia de caracteres de caracteres. |
strlen(param) |
param é o número de elementos na cadeia de caracteres até incluindo um terminador mas não nulo.Esta anotação é permitida para uso em matrizes de caracteres e é semelhante à função strlen ()()de tempo de execução de C. |
wcslen(param) |
param é o número de elementos na cadeia de caracteres até (mas não incluir em zero.) um terminadorEsta anotação é permitida para uso em matrizes de caracteres e todo é semelhante à função wcslen ()()de tempo de execução de 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 o SAL anotações para reduzir os defeitos no código C/C++