我有这个C typedef结构:
typedef struct _HEADER {
BYTE HeaderTag[16];
UINT16 __unused_field_1;
UINT16 __unused_field_2;
UINT32 data;
UINT64 size;
UINT32 UpperHeaderSize;
UINT32 LowerHeaderSize;
UINT32 KeySize;
UINT32 bufferEndOffset;
UINT32 NcefTag;
BYTE Description[128];
UINT32 ContainerVersion;
UINT32 HeaderSize;
GUID KeyId;
UINT32 FileId;
} HEADER, *P_HEADER;
typedef struct _INITIALIZATION_VECTOR {
UINT32 Offset;
UINT32 __unused_field_1;
UINT64 __unused_field_2;
} INITIALIZATION_VECTOR, *PINITIALIZATION_VECTOR;
我想将此C typedef结构转换为Swift。
答案 0 :(得分:0)
除了headerTag之外,它在Swift中几乎相同。 我会让你开始:
struct Header
{
var headerTag = [UInt8](repeating:0, count:16)
var unused_field_1 : UInt16 = 0
var unused_field_2 : UInt16 = 0
var data : UInt32 = 0
var size : UInt64 = 0
var UpperHeaderSize : UInt32 = 0
var LowerHeaderSize : UInt32 = 0
// You can add the rest based on above
}
let headerA = Header()
我不知道GUID是什么格式,但是BYTE在Swift中是UInt8。
注意:结构在Swift中是通过值传递的,而不是在C语言中是通过引用传递的。