memcpy()、memset()、memcmp()等这些内存操作函数经常会帮我们完成一些数据复制、赋值等操作。因为在C语言中,无论是内置类型,还是自定义的结构类型(struct),其内存模型对于我们来说都是可知的、透明的。所以,我们可以对该对象的底层字节序列一一进行操作,简单而有效。代码片段如下所示:
struct STUDENT
{
char _name[32];
int _age;
bool _gender;
};
STUDENT a = {"Li Lei", 20, true};
STUDENT b = {"Han MeiMei", 19, false};
int len = sizeof(STUDENT);
STUDENT c;
memset(&c, 0, len);
memcpy(&c, &a, len);
char *data = (char*)malloc(sizeof(char)*len);
memcpy(data, &b, len);