成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

  • 正文
  • 相關推薦
申請入駐 產業(yè)圖譜

驚呆!MDK當計算器使用?

2020/12/22
70
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

今天魚鷹介紹一個小知識點,那就是如何在調試時進行計算。在開發(fā)調試過程中,難免會遇到調試過程中需要臨時計算的情況,有些時候可能還需要動態(tài)的得到計算結果。很多時候,我們都會打開 Windows 自帶的計算器,這確實一種解決方式,但是難免顯得麻煩,而對于需要多次計算的情況來說,更是如此。那么是否有更好的解決方式呢?當然有,就是使用 MDK 自帶的命令行進行計算。進入調試模式后,MDK 自動會打開一個命令窗口,但估計絕大部分人都不知道這個窗口可以干什么用,今天魚鷹就介紹一個與此有關的使用,就是計算。

比如輸入以下公式(實際上,這里可以使用全局變量計算或當程序停在局部函數(shù)時計算局部變量),得到結果為 0x04。

你會發(fā)現(xiàn)即使使用括號,也能計算出結果,比 Windows 自帶的計算器強。那么現(xiàn)在就看計算結果是否正確了。如果我們的小學數(shù)學過關的話,這個結果應該是 5。但結果卻是 4,還是按照 16 進制顯示的。仔細想想你就知道,這里的計算完全按照 C 的表達式形式進行計算的(命令行下提示 C- style),這樣看來計算結果沒有問題。那我們嘗試使用浮點進行計算:

發(fā)現(xiàn)結果是我們想要的,同時計算結果使用十進制顯示。這里就需要注意一點,如果說你想計算結果準確,那么使用浮點計算是一個不錯的選擇,否則你就要確定是否是在驗證你的 C 語言表達式是否正確了。我們會想,是否可以設置結果為十進制顯示呢?偶然情況下,魚鷹發(fā)現(xiàn),這個結果顯示和局表變量窗口有關:

也就是說,如果局部變量顯示為十進制,那么計算結果也是十進制,反之亦然(默認十六進制顯示)。所以,現(xiàn)在我們有兩種十進制顯示方式:1、將局部變量窗口設置為十進制顯示 2、使用浮點計算(比如 1 寫成 1.0),那么結果一定是十進制。魚鷹推薦第二種方式,比較方便,同時計算結果也不容易出錯。事實上,除此之外,這個命令窗口還可以使用 sizeof,比如我想計算一下 int 的大小,可以這樣:

在這里可能不能體現(xiàn)這個命令窗口的優(yōu)勢,但如果說你想計算一個復雜的結構體呢?!

還有如果我們想動態(tài)的知道兩個變量的差值(或其他表達式)怎么辦?正常情況下,我們會選擇修改代碼,將結果存放至全局變量顯示。但今天魚鷹再介紹一種更簡單的顯示方式,直接在 Watch 窗口計算:

但是要注意,如果這兩個變量修改的很快的話,可能會突然出現(xiàn)一個異常值,所以只能作為一個參考,不能看到一個異常值就認為兩個變量有問題。但是暫停調試情況下,計算結果是可以相信的。

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄
桐城市| 泸溪县| 巴楚县| 恩平市| 满城县| 宁夏| 宕昌县| 财经| 鸡西市| 龙胜| 湘潭县| 惠水县| 沧州市| 凌源市| 屏山县| 天镇县| 沈丘县| 塘沽区| 黎川县| 琼中| 旌德县| 胶州市| 呈贡县| 永春县| 连平县| 桃园县| 阳新县| 竹北市| 肃北| 石门县| 邢台县| 东莞市| 满洲里市| 东乌| 乌鲁木齐市| 宁国市| 高雄县| 平江县| 进贤县| 连州市| 阜城县|