Anotar structs y clases

 

Publicado: julio de 2016

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Puede anotar los miembros de clase y struct mediante anotaciones que actúan como las invariantes, supuestamente deberían ser true en cualquier llamada de función o entrada/salida de la función que implica la estructura contenedora como un parámetro o un valor de resultado.

  • _Field_range_(low, high)

    El campo está en el intervalo (inclusivo) desde low a high. Equivalente a _Satisfies_(_Curr_ >= low && _Curr_ <= high) aplicado al objeto anotado utilizando las condiciones pre o post adecuadas.

  • _Field_size_(size), _Field_size_opt_(size), _Field_size_bytes_(size), _Field_size_bytes_opt_(size)

    Un campo que tiene un tamaño de escritura en elementos (o bytes) como 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)

    Un campo que tiene un tamaño de escritura en elementos (o bytes) como especificado por size, y el count de dichos elementos (bytes) que son legibles.

  • _Field_size_full_(size), _Field_size_full_opt_(size), _Field_size_bytes_full_(size), _Field_size_bytes_full_opt_(size)

    Un campo que tiene un tamaño puede leer y escribir en elementos (o bytes) como especificado por size.

  • _Struct_size_bytes_(size)

    Un campo que tiene un tamaño puede leer y escribir en elementos (o bytes) como especificado por size.

    Se aplica a la declaración de clase o estructura. Indica que un objeto válido de ese tipo puede ser mayor que el tipo declarado, con el número de bytes especificado por size. Por ejemplo:

    
    typedef _Struct_size_bytes_(nSize)  
    struct MyStruct {  
        size_t nSize;  
        …  
    };  
    
    
    

    El tamaño del búfer en bytes de un parámetro pM de tipo MyStruct * a continuación, se convierte en:

    min(pM->nSize, sizeof(MyStruct))  
    
    

Utilizar anotaciones SAL para reducir defectos de código de C o C++
Introducción a SAL
Anotar parámetros de función y valores devueltos
Anotar el comportamiento de la función
Anotar comportamiento de bloqueo
Especificar cuándo y dónde se aplica una anotación
Funciones intrínsecas
Procedimientos recomendados y ejemplos

Mostrar: