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

Функция zeroed

Функция zeroed из модуля std::mem создает значение типа T, все биты которого установлены в ноль. Функция является небезопасной, так как не все типы допускают нулевое битовое представление. Параметром функция не принимает ничего, а тип T указывается явно или выводится из контекста.

Для типов, которые не могут быть корректно представлены всеми нулями (например, &T, Box<T>, fn), вызов zeroed приводит к неопределенному поведению. Использовать функцию следует только для типов, у которых нулевое представление является допустимым, например для целых чисел или массивов из них.

Синтаксис

unsafe { std::mem::zeroed::<T>() }

Пример

Давайте создадим значение типа i32, все биты которого равны нулю:

fn main() { let res: i32 = unsafe { std::mem::zeroed() }; println!("{}", res); }

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

0

Пример

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

fn main() { let res: [u8; 5] = unsafe { std::mem::zeroed() }; println!("{:?}", res); }

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

[0, 0, 0, 0, 0]

Пример

Давайте создадим кортеж из трех нулевых значений разных целых типов:

fn main() { let res: (i32, u64, i8) = unsafe { std::mem::zeroed() }; println!("{:?}", res); }

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

(0, 0, 0)

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

  • ключевое слово unsafe,
    которое открывает блок небезопасного кода
  • функция zeroed у MaybeUninit,
    которая безопасно создает неинициализированное нулевое значение
  • функция transmute,
    которая переинтерпретирует биты одного типа в другой
  • функция size_of,
    которая возвращает размер типа в байтах
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить