經(jīng)常會(huì)設(shè)置一個(gè)數(shù)組之類的用來存儲(chǔ)臨時(shí)接受的數(shù)據(jù),由于數(shù)據(jù)是臨時(shí)的,具有不確定性,隨機(jī)性,如果沒及時(shí)讀取,會(huì)造成數(shù)據(jù)丟失,對(duì)工程的運(yùn)行不利。
我們?nèi)绾谓⒁粋€(gè)循環(huán)的buf,當(dāng)有新數(shù)據(jù),存儲(chǔ)在最新的位置,以便訪問。
首先我們假設(shè)開辟一個(gè)10*32大小的數(shù)組a[10][32],假設(shè)我們的數(shù)據(jù)沒次是32個(gè)byte,那我們可以存10組數(shù)據(jù),當(dāng)然越大越好,但一般小型處理器沒有那么多可操作空間。
我們?cè)俣x一個(gè)wp變量,代表新數(shù)據(jù)的變量,即為每增加一組數(shù)據(jù),wp 加1。
這樣我們的數(shù)組便知道存儲(chǔ)的空間占了多少,還余多少。
每次存新的數(shù)據(jù)位置在&a[wp][0]。
然后我們?cè)谠O(shè)置一個(gè)訪問變量 rp,用來讀取之前存儲(chǔ)的數(shù)據(jù)。每訪問一次rp 加1.
每次訪問的地址位置&a[rp][0]。
當(dāng)沒有新數(shù)據(jù)wp停止更新,等到rp=wp,代表所有數(shù)據(jù)讀取完成。
當(dāng)wp=10,預(yù)先設(shè)定的數(shù)組滿了,再往下存就溢出了,此時(shí)就要從頭開始存儲(chǔ)到a[0][0]的位置。
對(duì)于訪問也是一樣當(dāng)rp=10,也要返回來訪問,不然訪問的位置也不是我們存數(shù)據(jù)的位置了。