Anotando estruturas e classes
É possível anotar o struct e classificar membros usando as anotações que atuam como invariants- são presumidos ser verdadeiros em qualquer chamada de função ou função entrada/saída que envolve a estrutura inclusive como um parâmetro ou um valor do resultado.
A estrutura da classe e anotações
Anotação |
Descrição |
---|---|
_Field_range_(low, high) |
O campo está no intervalo (inclusivo) de low a high. O equivalente a _Satisfies_(_Curr_ >= low && _Curr_ <= high) aplicada ao objeto anotado usando o apropriado pre ou condições de postagem. |
_Field_size_(size) _Field_size_opt_(size) _Field_size_bytes_(size) _Field_size_bytes_opt_(size) |
Um campo que tem um tamanho gravável em elementos ou (em bytes) conforme especificado por size. |
_Field_size_part_(size, count) _Field_size_part_opt_(size, count) _Field_size_bytes_part_(size, count) _Field_size_bytes_part_opt_(size, count) |
Um campo que tem um tamanho gravável em elementos ou (em bytes) conforme especificado por size, e count dos elementos (bytes) que são legíveis. |
_Field_size_full_(size) _Field_size_full_opt_(size) _Field_size_bytes_full_(size) _Field_size_bytes_full_opt_(size) |
Um campo que tem o tamanho legível e gravável em elementos ou (em bytes) conforme especificado por size. |
_Struct_size_bytes_(size) |
Se aplica à declaração da estrutura ou da classe. Indica que um objeto válida desse tipo pode ser maior que o tipo declarado, com o número de bytes que estão sendo especificados por size. Por exemplo:
O tamanho do buffer em bytes de um parâmetro pM do tipo MyStruct * é então ser efetuado:
|
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++