http://www.cnblogs.com/cxz2009/archive/2010/11/11/1875125.html
可以通过memcmp()来比较2个相同的结构体变量,但这2个变量必须在赋值前进行清零初始化(否则结果不准确) ,或者2者是通过直接对等赋值而来。
另外,结构体的命名对memcmp()没有影响(只要内部结构完全一样)。
#include
#include
#includestruct CmpTest
{
chara;
shortb;
intc;
chard;
};
struct CmpTest1
{
chara;
shortb;
intc;
chard;
};
int main()
{
CmpTest t1;
CmpTest1 t2;
printf("%d\t",memcmp(&t1, &t2, sizeof(CmpTest)));
CmpTest t3;
CmpTest1 t4;
memset(&t3, 0, sizeof(CmpTest));
memset(&t4, 0, sizeof(CmpTest));
printf("%d\n",memcmp(&t3, &t4, sizeof(CmpTest)));
t1.a = 'a';
t1.b = 1;
t1.c = 123456;
t1.d = 'a';
t2.a = 'a';
t2.b = 1;
t2.c = 123456;
t2.d = 'a';
printf("%d\t",memcmp(&t1, &t2, sizeof(CmpTest)));
t3.a = 'a';
t3.b = 1;
t3.c = 123456;
t3.d = 'a';
t4.a = 'a';
t4.b = 1;
t4.c = 123456;
t4.d = 'a';
printf("%d\n",memcmp(&t3, &t4, sizeof(CmpTest)));
}
【用memcmp()比较结构体】
输出结果为:
1 0
1 0