1.可以也不可以
1.1结构体直接比较 其实 就是比较内存里的 内容
//默认四字节对齐
typedef struct
{
int d;
float b;
char a;
}aaa;
#大小 12字节
int main(void)
{
aaa z = {10,2.2,'1'};
aaa f = {10,2.2,'1'};
if(memcmp(&z,&f,sizeof(z))==0)
{
printf("heh\n");
}
return 0;
}
//输出结果 是不相等 因为 结构体初始化 只给9字节 内存 赋值 结构体大小12个字节 剩余三个字节 是随机值
#pragma pack(1) //将其转为一字节对齐
typedef struct
{
int d;
float b;
char a;
}aaa;
int main(void)
{
aaa z = {10,2.2,'1'};
aaa f = {10,2.2,'1'};
if(memcmp(&z,&f,sizeof(z))==0)
{
printf("heh\n");
}
return 0;
}