新聞中心

        EEPW首頁 > 牛人業話 > 數組越界真可怕,莫名就闖到了別人家

        數組越界真可怕,莫名就闖到了別人家

        作者:天雷君 時間:2018-11-30 來源:電子產品世界 收藏

          第一步,打開冰箱,即計算出該數據位的字節位置和位位置,如前所述,第n+1個數據位的字節位置為(n>>3),位位置為(n & 0x07),這是通過下面這個函數實現的,

        本文引用地址:http://www.104case.com/article/201811/395096.htm

          void SetByteBitIdx(void)

          {

          uint16_t idx;

          idx = Rf_bit_count;

          Rf_rawbyte_idx = idx >> 3;

          Rf_rawbit_idx  = idx & 0x07;

          Rf_bit_count++;

          }

          第二步,把數據位0或1這個‘大象’放到前面打開的‘冰箱’里,這是通過下面這個函數實現的。

          void StoreRfBit (bool data)

          {

          SetByteBitIdx();

          if(1 == data){

          Rx_rawbit[Rf_rawbyte_idx] |= 1 << Rf_rawbit_idx;

          }else{

          Rx_rawbit[Rf_rawbyte_idx] &= ~(1 << Rf_rawbit_idx);

          }

          }

          乍看下來,設計方案構思縝密,程序代碼實現巧妙,設計和實現都堪稱天衣無縫。按下遙控器,射頻信號在空間汩汩流動,遙控接收板有序地把數據整齊碼好,踏著相同的節拍,大家一起嗨起來。

          3

          但是,理想是美好的,現實永遠是骨感的。

        1543555728229384.jpg

          小心翼翼地把代碼寫好,反復檢查了幾遍,水平有限,著實檢查不出來任何毛病,那就是騾子是馬,拉出來溜溜吧。結果,一通測試下來,興奮勁還沒過去,一頭冷水便照頭潑了下來。按了遙控鍵,十次中倒有個兩三次不好使,“永不消逝的電波”就好像泥牛入海,轉眼間便走散了消息,不見了蹤跡。

          被風撕碎的一片片白云在遼闊高遠的天空中肆意飄蕩著,火紅的太陽炙烤著滾燙的大地。灑家背靠窗臺,一面感受著頑強得透過隔溫玻璃的陽光灑在脊背上的暖意,一邊在空調房中體味著心中的陣陣寒意。電波到底去哪兒了?

          灑家搜索的目光在電腦屏幕上不斷游離,心中條分縷析,早把各行代碼都當成了嫌疑,最后,目光定格在判斷接收到一幀完整的報文的語句那里:

          if(Rf_bit_count >= RF_RAWBIT_LEN){

          SetRfFrameComplete();

          }

          基本上,鑰匙每短按一次,就會發送三幀報文,既然遙控不好使,大抵可以確認中間存在漏報文的情形,為了驗證這種猜測,灑家加了一條測試語句:

          if(Rf_bit_count >= RF_RAWBIT_LEN){

          Rf_frame_times++;

          SetRfFrameComplete();

          }

          顯然,短按一次,Rf_frame_times應該為3,短按n次,Rf_frame_times應該為(n*3)。

          馬不停蹄地測試下來,果不其然,短按過十次后,Rf_frame_times的值不到30。難道是報文解析程序出了問題?




        關鍵詞: 數組

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东至县| 连云港市| 西藏| 卢氏县| 章丘市| 清流县| 和静县| 东台市| 汾阳市| 资阳市| 榆中县| 巴林左旗| 罗源县| 耒阳市| 玉溪市| 武冈市| 封丘县| 蓝田县| 泾源县| 望谟县| 炉霍县| 商城县| 肥东县| 广灵县| 子长县| 周口市| 许昌县| 孝义市| 宜州市| 谷城县| 棋牌| 吉水县| 军事| 临沂市| 吴忠市| 石楼县| 汉川市| 陆河县| 噶尔县| 富川| 育儿|