用memcmp()比较结构体

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

    推荐阅读