РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1234 of 1245 menu

Функция align_of_val

Функция align_of_val возвращает выравнивание в байтах для значения, на которое указывает переданная ссылка. Параметром функция принимает ссылку на значение, для которого нужно определить выравнивание. Функция является безопасной и не требует блока unsafe. Возвращаемое значение имеет тип usize.

В отличие от функции align_of, которая принимает тип и возвращает выравнивание для этого типа, align_of_val работает со значением и позволяет узнать выравнивание для конкретного экземпляра, что полезно при работе с динамическими типами и трейт-объектами.

Синтаксис

std::mem::align_of_val(val)

Пример

Давайте определим выравнивание для значения типа u32:

fn main() { let val: u32 = 42; let res = std::mem::align_of_val(&val); println!("{}", res); }

Результат выполнения кода:

4

Пример

Давайте определим выравнивание для значения типа u8:

fn main() { let val: u8 = 7; let res = std::mem::align_of_val(&val); println!("{}", res); }

Результат выполнения кода:

1

Пример

Давайте определим выравнивание для значения типа u64:

fn main() { let val: u64 = 100; let res = std::mem::align_of_val(&val); println!("{}", res); }

Результат выполнения кода:

8

Пример

Давайте определим выравнивание для элемента среза:

fn main() { let arr = [1u16, 2, 3, 4, 5]; let res = std::mem::align_of_val(&arr[0]); println!("{}", res); }

Результат выполнения кода:

2

Смотрите также

  • функция align_of,
    которая возвращает выравнивание для указанного типа
  • функция size_of,
    которая возвращает размер типа в байтах
  • функция size_of_val,
    которая возвращает размер значения в байтах
  • структура Layout,
    которая описывает расположение блока памяти
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить