instance_alignof¶
instance_alignof
表達式會回傳一個 Int32
,其中包含給定類別的實例對齊方式。
與 alignof
不同,後者會回傳已配置物件的參考(指標)對齊方式,而 instance_alignof
會回傳已配置物件本身的對齊方式。
例如:
class Foo
end
class Bar
def initialize(@x : Int64)
end
end
instance_alignof(Foo) # => 4
instance_alignof(Bar) # => 8
即使 Foo
沒有實例變數,編譯器總是會包含一個額外的 Int32
欄位,用於物件的型別 ID。這就是為什麼實例對齊方式最終為 4 而不是 1。