[英]unsigned char print correct value like the memcmp
我有這個變量,
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()
正在比較這些數組的內容而不是指針。
當您像這樣打印數組/指針時,您正在打印數據的地址。 如果要打印數據,可以使用 %s,只要兩者都以零結尾。
memcmp 不比較數組位置和指針,它比較地址處的數據。 因此,如果它返回 0,則打印兩個地址的數據應該會產生相同的字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.