指针类型转换

在涉及到网络协议编程时,可能经常使用到C风格指针类型强制转换。

例如

struct MyStruct

{

    unsigned char m_charvar;

    unsigned int  m_intvar;

};

typedef MyStruct MyStruct_t;

static void mycallback(unsigned char* payload, unsigned int payload_len)

{

    MySturct_t *ms = (MyStruct_t *)payload;

    //do something

}

需要注意,结构体涉及到字节对齐,上例中 sizeof(MyStruct_t)返回8。

在指针类型强制转换时,m_charvar 将从payload[0] 开始取一个字节,m_intvar 将从payload[3]开始取4个字节。

你可能感兴趣的:(指针类型转换)