找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

51單片機C語言指針是怎么找到數(shù)據(jù)的?

查看數(shù): 2011 | 評論數(shù): 9 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2022-10-31 14:31

正文摘要:

單片機p1的值是0xff,是如何找到c:0x001c的呢? 版本:keil 5

回復

ID:1043747 發(fā)表于 2022-11-1 11:46
188610329 發(fā)表于 2022-11-1 11:12
不是, 懸浮顯示是  KEIL 通過你的C語言代碼,而進行的 時實轉(zhuǎn)匯編的功能,“解析”出來的。
右下角的內(nèi) ...

多謝解答
ID:624769 發(fā)表于 2022-11-1 11:12
censv 發(fā)表于 2022-10-31 22:06
喔,明白了,多謝
那為何右下角的棧變量能正確解析,不是一個解析方式嗎?

不是, 懸浮顯示是  KEIL 通過你的C語言代碼,而進行的 時實轉(zhuǎn)匯編的功能,“解析”出來的。
右下角的內(nèi)存狀態(tài)框,是“仿真”功能,通過編譯后的單片機執(zhí)行代碼,模擬運行后出來的結(jié)果。

由于C語言編譯的時候,大小寫不同是不同的變量,生成的最終 單片機執(zhí)行代碼,是指向不同的地址。
而,匯編在編譯的時候,大小寫不同是同一個變量,所以,實施解析和 “仿真” 會有不同的結(jié)果。
所以,懸浮顯示就當一個參考就好了,最終還是要看 內(nèi)存狀態(tài)框的變化。
ID:1043747 發(fā)表于 2022-10-31 22:06
188610329 發(fā)表于 2022-10-31 21:04
他把 p1  當作了  P1   顯示地址為: 0x90

喔,明白了,多謝
那為何右下角的棧變量能正確解析,不是一個解析方式嗎?
ID:624769 發(fā)表于 2022-10-31 21:04
censv 發(fā)表于 2022-10-31 19:22
動態(tài)解析不區(qū)分大小寫?求細說

他把 p1  當作了  P1   顯示地址為: 0x90
ID:1043747 發(fā)表于 2022-10-31 19:22
188610329 發(fā)表于 2022-10-31 17:49
哦,你這是名字問題,  KEIL 的動態(tài)解析不區(qū)分大小寫,所以錯誤,你換個名字就好了, 比如 *Test1 之類的。

動態(tài)解析不區(qū)分大小寫?求細說
ID:624769 發(fā)表于 2022-10-31 17:49
censv 發(fā)表于 2022-10-31 17:36
并沒有看到隱藏啊

哦,你這是名字問題,  KEIL 的動態(tài)解析不區(qū)分大小寫,所以錯誤,你換個名字就好了, 比如 *Test1 之類的。
ID:883242 發(fā)表于 2022-10-31 17:44
censv 發(fā)表于 2022-10-31 17:36
并沒有看到隱藏啊

看匯編是藏在0x8里面,至于為什么顯示0x90?可能是個bug。
ID:624769 發(fā)表于 2022-10-31 17:08
你聲明的是通用指針,一共三個字節(jié),你只顯示一個字節(jié)自然只有0xff,代表類型的這個值了羅,0x00和0x1c就被藏了唄。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表