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

smile_so 2012-06-07 03:17:48
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的初始值是不是不同的编译器都不一样?
...全文
1821 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-06-07
  • 打赏
  • 举报
回复
小心内存对齐
矫情狗_____ 2012-06-07
  • 打赏
  • 举报
回复
operator == (const struct_test&)
重载操作符..
justkk 2012-06-07
  • 打赏
  • 举报
回复
是啊,如果你只关心前两个字段,就不能使用
memcmp(&struct1, &struct2, sizeof(struct_test))
沭水河畔 2012-06-07
  • 打赏
  • 举报
回复
我觉得都可以啊。

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧