我有这个变量,

unsigned char identifier1[12];


当我使用此标识符与强制转换为

const uint8_t*


喜欢

const uint8_t* getIdentifier() {return identifier1; }


我收到一个函数:

unsigned char *zid


我想将两者进行比较,所以我使用此memcmp(identifier1, zid, 12);

答案是0,所以他们都是相等的...

但是当我打印值时:

__android_log_print(ANDROID_LOG_INFO, "MyTag", "%d %d",(int)identifier1,(int)zid);


我在这两个值中都得到了不同的值。例如1711428512 1652772888,但是memcmp给出了写答案。

最佳答案

您正在打印两个数组的指针值,这是不同的。 memcmp()正在比较那些数组的内容,而不是指针。

关于android - unsigned char打印正确的值,如memcmp,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35924284/

10-11 17:58