#@sizeOf return 48 expected 40

1 messages · Page 1 of 1 (latest)

tired mulch
#
const SetupResponse = packed struct {
    status: u8,
    _padding_0: u8,
    protocol_major_version: u16,
    protocol_minor_version: u16,
    length: u16,
    release_number: u32,
    resource_id_base: u32,
    resource_id_mask: u32,
    motion_buffer_size: u32,
    vendor_len: u16,
    maximum_request_length: u16,
    roots_len: u8,
    pixmap_formats_len: u8,
    image_byte_order: u8,
    bitmap_format_bit_order: u8,
    bitmap_format_scanline_unit: u8,
    bitmap_format_scanline_pad: u8,
    min_keycode: u8,
    max_keycode: u8,
    _padding_1: u32,
};

@sizeOf(SetupResponse) gives 48 i expected it to give 40.

astral umbra
#

You probably want to use extern not packed struct

#

Packed is for bitcasting it to integer

worn skiff
#

*packed is for it to be an integer

astral umbra
#

Since the struct bit size is greater than u128, packed struct gives it a greater align for it to be interpreted as a [3]u128

#

u128 has align 16, so it pushes up your the struct size from 40 to 48 bytes