亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4037|回復: 5
打印 上一主題 下一主題
收起左側

想請問一下C語言循環累加超過變量限制后,系統會出錯嗎?

[復制鏈接]
跳轉到指定樓層
樓主
ID:349690 發表于 2020-9-2 17:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我在一個STC15W系列的單片機程序開發里面,不小心出了個錯誤。
unsigned int n;
while(1) { n++;…… }
大概就是以上邏輯。
n在實際運行中,很快就超過了65535的限制。我想問這個情況下,繼續累加下去,n的值是一直保持65535呢?還是從0開始自動循環呢?系統會不會崩潰?
根據實際情況,系統確實沒有崩潰,我也是在后期檢查時候才發現這個問題的,因為是分支程序,而且有中斷跳出,目前各種測試這個bug并沒有出現致命問題。但是可怕的是,1K的固件已經燒進去了,心中忐忑。所以想問問大師們,這樣的超限錯誤,芯片內變量的實際情況是怎樣的呢?我需不需要解決bug重新燒錄,還是這批就這樣放過呢?
先謝謝各位啦
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:471066 發表于 2020-9-2 18:52 | 只看該作者
為什么是65535,而不是65536,你也知道到655336就表示為0了,很簡單的例子是鐘表,到23點59分再走1分鐘就是24(0)點,這就叫溢出,他不會理會你到8點要上班,到12點要下班!
回復

使用道具 舉報

板凳
ID:378182 發表于 2020-9-2 20:00 | 只看該作者
這個變量 n 在程序其他語句中是否有引用?如果有引用并參與運算,則會引起不可預見的錯誤。
如無引用,由其在0-65535間循環,不必理會。
回復

使用道具 舉報

地板
ID:816373 發表于 2020-9-2 23:04 | 只看該作者
會從0開始繼續循環,具體會不會崩潰要看你是用來干什么的
回復

使用道具 舉報

5#
ID:130230 發表于 2020-9-2 23:46 | 只看該作者
不會出錯,加到65535后再加1就從0開始重新加。如果你懂一點匯編就明白了。這是是匯編里面常用的小技巧。
回復

使用道具 舉報

6#
ID:213173 發表于 2020-9-3 07:22 | 只看該作者
變量不受約束和溢出肯定會出錯,會不會導致災難性后果就要看這個變量在系統中的具體作用。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

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