Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[repr(align(16))]
- struct Unsigned8 {
- v: u8,
- }
- #[repr(align(16))]
- struct Foo {
- a: Unsigned8,
- b: Unsigned8
- }
- fn main() {
- use std::mem;
- let foo = unsafe { mem::uninitialized::<Foo>() };
- let foo_ptr : *const u8 = unsafe { mem::transmute(&foo) };
- let a_ptr : *const u8 = unsafe { mem::transmute(&foo.a) };
- let b_ptr : *const u8 = unsafe { mem::transmute(&foo.b) };
- let offset_a = (a_ptr as usize) - (foo_ptr as usize);
- let offset_b = (b_ptr as usize) - (foo_ptr as usize);
- println!("a={}, b={}", offset_a, offset_b);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement