Cursos
Módulo
Uso de tipos de datos y structs, matrices, segmentos y asignaciones en Go - Training
Obtenga información sobre structs, matrices, segmentos y asignaciones. Entienda la diferencia entre ellos y cuándo usar un tipo u otro.
Este explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Se han definido varias categorías de matriz en función de sus características de rendimiento, principalmente si la matriz se puede copiar en bloque.
Para algunas categorías, como una matriz de tamaño fijo, existen dos tipos de descriptores de matriz; se indican mediante una corrección en el nombre del token de FC inicial.
Formato de carácter | Descripción |
---|---|
SM | El tamaño total del tipo se puede representar en un entero de 16 bits sin signo. |
LG | El tamaño total del tipo necesita representar un long sin signo de 32 bits. |
Campos comunes a matrices:
total_size
Tamaño total de la matriz en memoria, en bytes. Este es el mismo que el tamaño de cable después de la alineación. El tamaño total se calcula para las categorías para las que el problema de relleno no existe y el tamaño es el tamaño real de la matriz.
element_size
Tamaño total en memoria de un único elemento de la matriz, incluido el relleno (esto puede ocurrir solo para matrices complejas).
element_description
Descripción del tipo de elemento de matriz.
pointer_layout
Consulte el tema Diseño de puntero para obtener más información.
Se genera una cadena de formato de matriz de tamaño fijo para matrices que tienen un tamaño conocido y, por lo tanto, se pueden copiar en bloque en el búfer de serialización. Los dos formatos fijos de descriptores de matriz son los siguientes.
FC_SMFARRAY alignment<1>
total_size<2>
[pointer_layout<>]
element_description<>
FC_END
y
FC_LGFARRAY alignment<1>
total_size<4>
[pointer_layout<>]
element_description<>
FC_END
Una matriz conforme se puede copiar en bloque una vez que se conoce el tamaño de la matriz.
FC_CARRAY alignment<1>
element_size<2>
conformance_description<>
[pointer_layout<>]
element_description<>
FC_END
El conformance_description<> es un descriptor de correlación y tiene 4 o 6 bytes en función de si se usa /robust .
Una matriz variable compatible también se puede copiar en bloque.
FC_CVARRAY alignment<1>
element_size<2>
conformance_description<>
variance_description<>
[pointer_layout<>]
element_description<>
FC_END
El conformance_description<> y variance_description<> es un descriptor de correlación y tiene 4 o 6 bytes en función de si se usa /robust .
Las distintas matrices tienen dos posibilidades en función del tamaño de la matriz.
FC_SMVARRAY alignment<1>
total_size<2>
number_elements<2>
element_size<2>
variance_description<>
[pointer_layout<>]
element_description<>
FC_END
FC_LGVARRAY alignment<1>
total_size<4>
number_elements<4>
element_size<2>
variance_description<4>
[pointer_layout<>]
element_description<>
FC_END
El variance_description<> es un descriptor de correlación y tiene 4 o 6 bytes en función del /robust que se use.
Para matrices variables incrustadas dentro de una estructura, el campo offset<2> del variance_description<> es un desplazamiento relativo de la posición de la matriz variable en la estructura para la varianza que describe el campo. El desplazamiento suele ser relativo al principio de la estructura.
Una matriz compleja es cualquier matriz con un elemento que impide que se copie en bloque y, como tal, es necesario realizar acciones adicionales. Estos elementos hacen que una matriz sea compleja:
La descripción de la matriz compleja es la siguiente:
FC_BOGUS_ARRAY alignment<1>
number_of_elements<2>
conformance_description<>
variance_description<>
element_description<>
FC_END
El campo number_of_elements<2> es cero si la matriz es conforme.
El conformance_description<> y variance_description<> es un descriptor de correlación y tiene 4 o 6 bytes en función de si se usa /robust . Si la matriz tiene conformidad o varianza, los campos de conformance_description<> o variance_description<> tienen descripciones válidas; de lo contrario, los primeros 4 bytes del descriptor de correlación se establecen en 0xFFFFFFFF. Las marcas, cuando están presentes, se establecen en cero.
Cursos
Módulo
Uso de tipos de datos y structs, matrices, segmentos y asignaciones en Go - Training
Obtenga información sobre structs, matrices, segmentos y asignaciones. Entienda la diferencia entre ellos y cuándo usar un tipo u otro.
Documentación
IAudioInputEndpointRT::GetInputDataPointer (audioengineendpoint.h) - Win32 apps
Obtiene un puntero al búfer desde el que el motor de audio leerá los datos.
Los lenguajes de programación C y C++ proporcionan básicamente dos tipos de matrices unidimensionales y multidimensionales.
TLIBATTR (oaidl.h) - Win32 apps
Contiene información sobre una biblioteca de tipos. La información de esta estructura se usa para identificar la biblioteca de tipos y proporcionar compatibilidad con idiomas nacionales para los nombres de miembros.