<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/單片機知識點總結/directory.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
說明
現在有個這個事情.
我有一個設備,然后好多APP都來控制這個設備.
每個APP都有一個標識符,設備想要和某個APP通信
設備的數據里面需要攜帶着APP的標識符.
簡單的處理就是設備去把每一個APP的標識符記錄下來
然后設備發送數據的時候根據標識符一個一個的去發送數據.
但是設備不可能無限制的記錄APP的標識符.
而且為了給新來的APP騰出位置記錄其標識符
還需要把那些長時間不使用的標識符刪除掉.
整體思路
用一個buff記錄每一條數據.
往里存儲的時候判讀下有沒有這條數據
如果有這個數據,就把這個數據提到buff的第一個位置,然后其它數據往后移
如果沒有這個數據就把這個數據插到buff的第一個位置,其它數據也往后移
使用
1.我封裝好了這個功能
2.使用的一個二維數組進行的緩存
測試剛存儲的優先放到緩存的第一個位置(新數據)
1.先存儲 6個0字符 再存儲6個1字符
2.執行完記錄6個0字符,數據存儲在緩存的第一個位置
3.執行完記錄6個1字符,6個1字符數據存儲在緩存的第一個位置,0字符存儲在緩存的第二個位置
測試剛存儲的優先放到緩存的第一個位置(已經存在的數據)
1.測試一下如果再次記錄相同的數據,緩存把數據提到第一個位置,其它位置往后移
注:
執行存儲0字符,正常運行應該是把0存儲在第一個位置
然后執行記錄1字符,正常運行應該是把1存儲在第一個位置,0存儲在第二個位置
然后執行記錄2字符,正常運行應該是把2存儲在第一個位置,1存儲在第二個位置,0存儲在第三個位置
然后再次記錄1,正常運行應該是把1提取出來(程序里面會用其它數據填補這個空缺),放到第一個位置
然后2存儲在第二個位置,0存儲在第三個位置
使用里面的數據
直接調用這個數組就可以,數組的每一行代表存儲的每一條數據
提示:
如果程序存儲滿了,自動丟棄最后一個位置的數據.