欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3662|回復(fù): 5
收起左側(cè)

想請問一下C語言循環(huán)累加超過變量限制后,系統(tǒng)會(huì)出錯(cuò)嗎?

[復(fù)制鏈接]
ID:349690 發(fā)表于 2020-9-2 17:48 | 顯示全部樓層 |閱讀模式
我在一個(gè)STC15W系列的單片機(jī)程序開發(fā)里面,不小心出了個(gè)錯(cuò)誤。
unsigned int n;
while(1) { n++;…… }
大概就是以上邏輯。
n在實(shí)際運(yùn)行中,很快就超過了65535的限制。我想問這個(gè)情況下,繼續(xù)累加下去,n的值是一直保持65535呢?還是從0開始自動(dòng)循環(huán)呢?系統(tǒng)會(huì)不會(huì)崩潰?
根據(jù)實(shí)際情況,系統(tǒng)確實(shí)沒有崩潰,我也是在后期檢查時(shí)候才發(fā)現(xiàn)這個(gè)問題的,因?yàn)槭欠种С绦颍矣兄袛嗵觯壳案鞣N測試這個(gè)bug并沒有出現(xiàn)致命問題。但是可怕的是,1K的固件已經(jīng)燒進(jìn)去了,心中忐忑。所以想問問大師們,這樣的超限錯(cuò)誤,芯片內(nèi)變量的實(shí)際情況是怎樣的呢?我需不需要解決bug重新燒錄,還是這批就這樣放過呢?
先謝謝各位啦
回復(fù)

使用道具 舉報(bào)

ID:471066 發(fā)表于 2020-9-2 18:52 | 顯示全部樓層
為什么是65535,而不是65536,你也知道到655336就表示為0了,很簡單的例子是鐘表,到23點(diǎn)59分再走1分鐘就是24(0)點(diǎn),這就叫溢出,他不會(huì)理會(huì)你到8點(diǎn)要上班,到12點(diǎn)要下班!
回復(fù)

使用道具 舉報(bào)

ID:378182 發(fā)表于 2020-9-2 20:00 | 顯示全部樓層
這個(gè)變量 n 在程序其他語句中是否有引用?如果有引用并參與運(yùn)算,則會(huì)引起不可預(yù)見的錯(cuò)誤。
如無引用,由其在0-65535間循環(huán),不必理會(huì)。
回復(fù)

使用道具 舉報(bào)

ID:816373 發(fā)表于 2020-9-2 23:04 | 顯示全部樓層
會(huì)從0開始繼續(xù)循環(huán),具體會(huì)不會(huì)崩潰要看你是用來干什么的
回復(fù)

使用道具 舉報(bào)

ID:130230 發(fā)表于 2020-9-2 23:46 | 顯示全部樓層
不會(huì)出錯(cuò),加到65535后再加1就從0開始重新加。如果你懂一點(diǎn)匯編就明白了。這是是匯編里面常用的小技巧。
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2020-9-3 07:22 | 顯示全部樓層
變量不受約束和溢出肯定會(huì)出錯(cuò),會(huì)不會(huì)導(dǎo)致災(zāi)難性后果就要看這個(gè)變量在系統(tǒng)中的具體作用。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表