Julia中数据类型的二进制表示原理

Julia中数据类型的二进制表示原理,julia,Julia,我预计sizeof(TestA)将为4+8=12 我对幕后的原则感到好奇 为什么TestA和TestB的大小相同 ps:是一个好材料字节对齐就是答案。文件指出: 请注意,所有对象均以4字节的倍数分配,并与平台指针大小对齐 我不熟悉Julia,但我怀疑这是字节对齐。例如,如果在C或C++中定义了结构> ,包含“代码”UTI8GYT 和 UTI32×T ,您将发现在大多数平台上占用64字节的内存,除非使用指令来坚持大小。如果您不确定,但我认为@DavidHoelzer是正确的,正如上面所说:注意,

我预计
sizeof(TestA)
将为4+8=12


我对幕后的原则感到好奇

为什么
TestA
TestB
的大小相同


ps:是一个好材料

字节对齐就是答案。文件指出:

请注意,所有对象均以4字节的倍数分配,并与平台指针大小对齐


我不熟悉Julia,但我怀疑这是字节对齐。例如,如果在C或C++中定义了<代码>结构> <代码>,包含“代码”UTI8GYT 和 UTI32×T ,您将发现在大多数平台上占用64字节的内存,除非使用指令来坚持大小。如果您不确定,但我认为@DavidHoelzer是正确的,正如上面所说:
注意,所有对象都以4字节的倍数分配,并与平台指针大小对齐。
。如果您需要压缩结构,您可以尝试:一般来说,Julia尝试匹配C结构对齐规则,以便可以在Julia中镜像C结构并来回传递值。
julia> type TestA
       a::Int32
       b::Int64
       end
julia> type TestB
       a::Int64
       b::Int64
       end

julia> sizeof(TestA),sizeof(TestB)
(16,16)