#include <stdio.h>
#include <string.h>
int main()
{
int test1 = 8410092; // 0x8053EC
int test2 = 8404974; // 0x803FEE
char *t1 = ( char*) &test1;
char *t2 = (char*) &test2;
int ret2 = memcmp(t1,t2,4);
printf("%d",ret2);
}
这是一个非常基本的函数,运行时会打印 -2。也许我完全误解了 memcmp,但我想如果它返回第一个不同字节之间的差异。由于 test1 的 num 比 test2 大,打印的值不应该是正数吗?
我正在为 ubuntu 使用标准的 gcc.7 编译器。