macro_rules! raw_const {
    ($e:expr) => { ... };
}Create a const raw pointer to a place, without creating an intermediate reference.
Creating a reference with &/&mut is only allowed if the pointer is properly aligned and points to initialized data. For cases where those requirements do not hold, raw pointers should be used instead. However, &expr as *const _ creates a reference before casting it to a raw pointer, and that reference is subject to the same rules as all other references. This macro can create a raw pointer without creating a reference first.
#![feature(raw_ref_macros)]
use std::ptr;
#[repr(packed)]
struct Packed {
    f1: u8,
    f2: u16,
}
let packed = Packed { f1: 1, f2: 2 };
// `&packed.f2` would create an unaligned reference, and thus be Undefined Behavior!
let raw_f2 = ptr::raw_const!(packed.f2);
assert_eq!(unsafe { raw_f2.read_unaligned() }, 2);
    © 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
    https://doc.rust-lang.org/std/ptr/macro.raw_const.html