Mem Functions
Memory-related functions
size_of และ align_of
Section titled “size_of และ align_of”use std::mem::{size_of, size_of_val, align_of, align_of_val};
fn main() { // size_of - type size println!("=== Type Sizes ==="); println!("bool: {} bytes", size_of::<bool>()); println!("char: {} bytes", size_of::<char>()); println!("u8: {} bytes", size_of::<u8>()); println!("i32: {} bytes", size_of::<i32>()); println!("u64: {} bytes", size_of::<u64>()); println!("usize: {} bytes", size_of::<usize>());
// Reference sizes println!("\n=== Reference Sizes ==="); println!("&i32: {} bytes", size_of::<&i32>()); println!("&[i32]: {} bytes", size_of::<&[i32]>()); // Fat pointer println!("&str: {} bytes", size_of::<&str>()); // Fat pointer println!("Box<i32>: {} bytes", size_of::<Box<i32>>());
// size_of_val - value size let arr = [1, 2, 3, 4, 5]; println!("\n=== Value Sizes ==="); println!("[i32; 5]: {} bytes", size_of_val(&arr)); println!("slice: {} bytes", size_of_val(&arr[..]));
// align_of println!("\n=== Alignment ==="); println!("u8 align: {}", align_of::<u8>()); println!("i32 align: {}", align_of::<i32>()); println!("u64 align: {}", align_of::<u64>());
// Struct padding struct Padded { a: u8, b: u32, c: u8 } println!("\nPadded struct: {} bytes (alignment: {})", size_of::<Padded>(), align_of::<Padded>());}เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม
ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด
Login with Google