#include "stdafx.h"
#include <stdlib.h>
#include <memory.h>
struct Msg
{
enum { TAG_SIZE = 3} c; //如果仅是定义 enum { TAG_SIZE = 3},不战用结构空间;
enum { TAG_ID = 5, TAG_ID_1, TAG_ID_2, TAG_ID_3} d;
int a;
int b;
int func(){ return 0;}
int func2() { return 1;}//不占用空间
//virtual int func3(){return 0;}//虚函数指针战用四字节空间
};
结构是构造类型,ENUM是基本类型;
int _tmain(int argc, _TCHAR* argv[])
{
char buf[50];
int a = 5;
int b = 6;
memset(buf, 0, sizeof(buf));
memcpy(buf+ sizeof(int), (void*)&a, sizeof(int));
memcpy(buf+ 2 * sizeof(int), (void*)&b, sizeof(int));
Msg msg;
memcpy((void*)&msg, (void*)buf, sizeof(Msg));
printf("Msg:%d/n", sizeof(Msg));
printf("a:%d/n", msg.a);
printf("b:%d/n", msg.b);
printf("b:%d/n", msg.b);
}