オブジェがあれば
struct Packet P;
からなる
struct Packet {
    struct Packet_header header;
    unsigned char data[MAXIMUM_BUFFER_LENGTH];
};
ヘッダーは
struct Packet_header {
    unsigned int checksum;
    unsigned int seq;
    unsigned int ack;
    unsigned int data_length;
};
パケットをキャストしようとすると
(unsigned char*) &P
元のパケット P を取得するために「アンキャスト」できる方法はありますか?