構造体にパディングを使用しないようにGCCに指示することができます。これはを使用して行われ__attribute__((packed))
ます。
typedef struct {
uint8_t startSymbol;
uint8_t packetType;
uint32_t deviceId;
uint16_t packetCRC;
} PacketData __attribute__((packed));
ただし、最新のXcodeはLLVMを使用しており、属性を認識しません。LLVMのパック構造体を定義する方法は?
問題の完全な説明はここにあります
更新 AppleLLVM4.1コンパイラを使用するiOS用のXcode4.5.1を使用しています。上記のコード例のXcodeで「'packed'属性が無視されました」という警告が表示されます。