En Rust, podemos determinar el tamaño de un tipo específico utilizando la función size_of. Esta función está en núcleo :: mem :: size_of y toma un tipo y devuelve su tamaño en bytes.
Aprendamos cómo usar la función size_of para determinar el tamaño de varios tipos en óxido.
Tamaño de óxido de tipos primitivos
Podemos determinar el tamaño de los tipos primitivos de óxido utilizando la función size_of. La sintaxis general de la función size_of es la que se muestra a continuación:
pub const fn size_ofComo se mencionó, la función devolverá el tamaño del tipo especificado en bytes. El óxido establece que el tamaño de un tipo no es estable en compilaciones cruzadas, excepto para tipos primitivos.
Usemos el siguiente ejemplo para determinar el tamaño de un tipo booleano:
usar std :: mem;El programa de ejemplo importa el módulo de memoria desde la biblioteca estándar. Esto nos da acceso a la función size_of para determinar el tamaño de un bool.
Luego, llamamos a la función dentro del método println y devolvemos el tamaño de un tipo booleano.
La salida resultante es como se muestra a continuación:
$ Cargo RunPodemos hacer esto para todos los demás tipos primitivos en óxido. A continuación se proporciona un ejemplo:
usar std :: mem;El programa simple mencionado anteriormente determina el tamaño de todos los tipos primitivos en el lenguaje de óxido. Un ejemplo de salida resultante es como se muestra:
Tamaño de bool: 1 byteTamaño de óxido de la estructura
En el óxido, el tamaño de las estructuras está determinado por un algoritmo simple:
Puede obtener más información sobre la alineación en el recurso proporcionado a continuación:
https: // doc.lang óxido.org/stable/std/mem/fn.alinearse.html
Un ejemplo del tamaño de una estructura es como se muestra a continuación:
Struct UserEl código anterior debe devolver el tamaño de la estructura como:
$ Cargo RunTamaño de óxido de la matriz
También podemos usar el método size_of para determinar el tamaño de una matriz. Considere el ejemplo proporcionado a continuación:
println!("El tamaño de la matriz es: bytes", mem :: size_of ::<[i32; 5]>())El ejemplo anterior determina el tamaño de una matriz de tipos i32 y una longitud de 5. La matriz equivalente es como se muestra a continuación:
Deje my_array: [i32; 5] = [1,2,3,4,5];El programa debe devolver el tamaño de la matriz como:
El tamaño de la matriz es: 20 bytesTamaño de óxido del puntero
El siguiente ejemplo evalúa el tamaño de un puntero utilizando la sintaxis:
println!("Tamaño del puntero bytes", mem :: size_of ::<*const i32>());El código anterior devuelve el tamaño de un puntero sin procesar en una referencia de i32. La salida resultante se proporciona a continuación:
Tamaño de Pointer8 bytesConclusión
Este artículo describe cómo determinar el tamaño de varios tipos de óxido, incluidos tipos primitivos, matrices, punteros y estructuras. Además, la función size_of se discutió en detalle. Esperamos que hayas encontrado este artículo útil. Consulte el otro artículo de Sugerencia de Linux para obtener más consejos y artículos.