我有 2 个相同类型的结构并想比较它们。结构的大小是 420 字节,我想在比较时跳过前 2 个字节,因为我知道它们永远不会匹配。我正在使用 memcmp 如下:
` typedef struct foo // total of 420 bytes
{
char c1,c2 ;
int x ;
struct temp y ;
... // lot of other members
...
...
} ;
foo f1, f2 ;
memset (&f1, 0xff, sizeof(foo) ) ;
memset (&f2,0xff, sizeof(foo) ) ;
update_foo(&f1) ; // function which updates the structure by reading value from flash memory
// Now compare 2 structures starting with value x
if ( memcmp(&f1.x, &f2.x, sizeof(foo)-2 ) == 0 )
// Do something
else
// Do something else`
比较的结果给了我随机值。我假设当我通过“&f1.x”和“&f2.x”时,我跳过了前两个字节,比较剩余的 418 个字节。这个假设正确吗?