struct field reordering (minimizing padding)
This commit is contained in:
+23
-4
@@ -1887,6 +1887,18 @@ Bool_Last :: struct {
|
||||
flag bool
|
||||
}
|
||||
|
||||
Optimized :: struct {
|
||||
prefix u8
|
||||
wide u64
|
||||
suffix u8
|
||||
}
|
||||
|
||||
Source_Order_C :: c_struct {
|
||||
prefix c_uchar
|
||||
wide c_ulong
|
||||
suffix c_uchar
|
||||
}
|
||||
|
||||
Opaque :: opaque
|
||||
Color :: enum {
|
||||
red
|
||||
@@ -1937,12 +1949,19 @@ main func() i32 {
|
||||
if (sizeof!(bool) != 1) return 15
|
||||
if (sizeof!(Bool_First) != 2) return 16
|
||||
if (sizeof!(Bool_Last) != 2) return 17
|
||||
optimized Optimized := Optimized{prefix = 40, wide = 72623859790382856, suffix = 41}
|
||||
if (sizeof!(Optimized) != 16) return 18
|
||||
if (alignof!(Optimized) != 8) return 19
|
||||
if (sizeof!(Source_Order_C) != 24) return 20
|
||||
if (optimized.prefix != 40) return 21
|
||||
if (optimized.wide != 72623859790382856) return 22
|
||||
if (optimized.suffix != 41) return 23
|
||||
first :: make_bool_first()
|
||||
if (!first.flag) return 18
|
||||
if (first.byte != 41) return 19
|
||||
if (!first.flag) return 24
|
||||
if (first.byte != 41) return 25
|
||||
last :: make_bool_last()
|
||||
if (!last.flag) return 20
|
||||
if (last.byte != 42) return 21
|
||||
if (!last.flag) return 26
|
||||
if (last.byte != 42) return 27
|
||||
return 0
|
||||
}
|
||||
`
|
||||
|
||||
Reference in New Issue
Block a user