今天寫代碼,遇到個問題,數據結構是這樣的,然後收header的時候,cmd內容怎麼都對不了,知道struct c++的字節對齊,這個結構體佔16字節。
struct PacketHeader {
uint16_t magic_num;
uint32_t seq_num;
uint16_t cmd;
uint32_t packet_len;
};
以後寫代碼的時候瞭解一下,怎麼取消字節對齊,這樣就可以取消了
#pragma pack(1)
struct PacketHeader {
uint16_t magic_num;
uint32_t seq_num;
uint16_t cmd;
uint32_t packet_len;
};
#pragma pack()