(原创)c&c++积累

2013/08/10 c&c++

C语言

C语言结构体

#pragma pack(push)
#pragma pack(1)
struct _cmd_base
{
	UCHAR type;
	UCHAR chk;
	UINT16 len;
	UCHAR *data;
};
#pragma pack(pop)
typedef struct _cmd_base CMD_BASE, * P_CMD_BASE;

int size = sizeof(CMD_BASE);

上述结构体大小size为8

#pragma pack(push)
#pragma pack(1)
struct _cmd_base
{
	UCHAR type;
	UCHAR chk;
	UINT16 len;
	UCHAR data[];
};
#pragma pack(pop)
typedef struct _cmd_base CMD_BASE, * P_CMD_BASE;

int size = sizeof(CMD_BASE);

上述结构体大小size为4

不难发现第二种结构体中data居然不占用内存,这就方便了内存直接映射结构体的操作了。


知识共享许可协议
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

站内搜索

    撩我备注-博客

    joinee

    目录结构