簡體   English   中英

unsigned char 打印正確的值,如 memcmp

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM