今天我遇到了Swift结构的问题.例如,请参阅以下结构:
struct TestStruct {
var test: UInt16
var test2: UInt32
}
Run Code Online (Sandbox Code Playgroud)
我假设这个结构的大小总共是6个字节,因为UInt16是2个字节而UInt32是4个字节大.
以下代码打印6(这是正确的):
println(sizeof(UInt32) + sizeof(UInt16))
Run Code Online (Sandbox Code Playgroud)
但是,如果我检查结构的大小
println(sizeof(TestStruct))
Run Code Online (Sandbox Code Playgroud)
它打印8而不是6.
如果我尝试使用以下结构:
struct TestStruct2 {
var test: UInt16
var test2: UInt16
var test3: UInt16
}
Run Code Online (Sandbox Code Playgroud)
然后
println(sizeof(TestStruct2))
Run Code Online (Sandbox Code Playgroud)
打印正确的值:6.但TestStruct的大小应与TestStruct2的大小相同.
为什么第一个struct 8字节大?我做错了什么或这是一个错误?
(在OS X Mavericks上使用Xcode 6.1.1(6A2008a)进行测试,适用于Mac的普通命令行应用程序)