【发布时间】:2015-09-08 02:31:48
【问题描述】:
我有一个包含无符号字符和位域的结构:
struct {
unsigned char byt1 ;
unsigned char var1 :1;
unsigned char byt2 ;
unsigned char var2 :1;
unsigned char var3 :1;
unsigned char var4 :1:
} struct1;
我想将此结构与自身进行比较。我保留了这个结构的两个副本,我只想检查与它的第一个副本相比是否有任何变化。
在这里使用 memcmp() 是否安全?真正的结构有 50 多个成员,它们都是无符号字符或位。
【问题讨论】:
-
在位域结构上使用
memcmp是安全的,只是在任何其他类型的数据(变量、数组、“普通”结构、静态分配或动态)。只要您传递给memcmp的length参数不使其超出任一输入内存块的范围,它就应该可以正常工作。