首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于两个结构体是否相等的比较的方法解决方案

2012-06-09 
关于两个结构体是否相等的比较的方法typedef unsigned char u8typedef struct{u8 au8 bu8 u8pad[2]}str

关于两个结构体是否相等的比较的方法
typedef unsigned char u8
typedef struct
{
  u8 a;
  u8 b;
  u8 u8pad[2];
}struct_test;

struct_test struct1,struct2;
然后在后面会用到这两个struct_test变量
用什么方法比较他们是否相等比较好?
if(0 == memcmp(&struct1, &struct2, sizeof(struct_test)));
还是
if ( (struct1.a == struct2.a)
  && (struct1.b == struct2.b))

用memcmp的方法这个u8pad的初始值是不是不同的编译器都不一样?

[解决办法]
我觉得都可以啊。
[解决办法]
是啊,如果你只关心前两个字段,就不能使用
memcmp(&struct1, &struct2, sizeof(struct_test))
[解决办法]
operator == (const struct_test&)
重载操作符..
[解决办法]
小心内存对齐

热点排行