c++是类型不安全的,一般字节流和结构体是可以互相强转的,但前提是字节流要像结构体一样进行数据对齐,下面就来看看按数据大小依次排列的字节流是如何转化为结构体的:
基础依赖部分代码:
#include <stdio.h>
#include <windows.h>
#include <list>
namespace sangame
{
#define H8_UINT16(x) ((((x)>>8)&0x00FF))
#define L8_UINT16(x) ((((x) )&0x00FF))
#define H16_UINT32(x) ((((x)>>16)&0x0000FFFF))
#define L16_UINT32(x) ((((x) )&0x0000FFFF))
#define H32_UINT64(x) ((((x)>>32)&0x00000000FFFFFFFF))
#define L32_UINT64(x) ((((x) )&0x00000000FFFFFFFF))
#define INVERT16(x) ((((x)>>8)&0x00FF)|(((x)<<8)&0xFF00))
#define INVERT32(x) ((((x)>>24)&0x000000FF)|(((x)>>8)&0x0000FF00)|(((x)<<8)&0x00FF0000)|(((x)<<24)&0xFF000000))
#define INVERT64(x) ((((x)>>56)&0x00000000000000FF)|(((x)>>40)&0x000000000000FF00)|(((x)>>24)&0x0000000000FF0000)|(((x)>>8 )&0x0000
版权声明:本文为ZHYFXY原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。